我正在使用 android 的默认媒体播放器播放 mp3 声音,我在下面播放声音的代码
MediaPlayer mp=MediaPlayer.create(hello.this,R.raw.abc); if(mp!=null) { mp.start(); }
我需要在同一个按钮单击时播放相同的声音。当我在一段时间后连续单击按钮时声音不起作用并且我收到错误 MediaPlayer(7395): error (-19, 0)。
有没有人有这个问题的想法,请发给我
预先感谢。
我正在使用 android 的默认媒体播放器播放 mp3 声音,我在下面播放声音的代码
MediaPlayer mp=MediaPlayer.create(hello.this,R.raw.abc); if(mp!=null) { mp.start(); }
我需要在同一个按钮单击时播放相同的声音。当我在一段时间后连续单击按钮时声音不起作用并且我收到错误 MediaPlayer(7395): error (-19, 0)。
有没有人有这个问题的想法,请发给我
预先感谢。
称呼
mp.reset();
因为每次你都在 decalaring 对象
或在类级别 Mediaplayer OBject 上声明
我已经找到了解决这个问题的方法。我已经使用下面的代码纠正了这个问题,也可以帮助其他人。
谢谢
调用方法如
PlaySound(R.raw.abc);
//方法
private void PlaySound(int Sound_id)
{
mplayer = MediaPlayer.create(Act_Oceanwaves.this,Sound_id);
if(mplayer!=null)
{
mplayer.start();
}
mplayer.setOnCompletionListener(new OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp)
{
mp.release();
}
});
}
制作媒体播放器的全局变量并尝试这种方式
MediaPlayer mp;
if (mp!=null) {
mp.stop();
mp.release();
}
mp= MediaPlayer.create(hello.this,R.raw.abc);
mp.start();
mp = new MediaPlayer();
mp.create(this, R.raw.testmed);
mp.setVolume(100, 100);
mp.setOnPreparedListener(this);
mp.prepare();
然后你需要定义它,它应该可以工作:
public void onPrepared(MediaPlayer player) {
mp.start();
}
you can play music like below
// for play the song
MediaPlayer mp = new MediaPlayer();
try
{
mp.reset();
mp.setDataSource(songPath);
mp.prepare();
mp.start();
btnPlay.setBackgroundResource(R.drawable.img_btn_pause);
} catch (IOException e) {
Log.v(getString(R.string.app_name), e.getMessage());
}