重新初始化媒体播放器后,OnCompletionListener无法正常工作

时间:2015-03-18 20:41:39

标签: android media-player

mySound.setOnCompletionListener(new OnCompletionListener() {
 @Override
 public void onCompletion(MediaPlayer mp) {
          mp.release();...
 }

如果mySound没有更改,代码工作正常。但是当mySound发布并重新初始化时,代码将不再有效。

1 个答案:

答案 0 :(得分:2)

引用谷歌:

  

完成MediaPlayer后,你应该调用release()来释放   资源。如果未释放,将导致过多的MediaPlayer实例   在一个例外中。

致电release()后,如果您需要再次使用此功能,则必须创建MediaPlayer的新实例并重新初始化,还包括setOnCompletionListener

mPlayer.release();
mPlayer = null;  

mPlayer = new MediaPlayer();
...
mPlayer.setOnCompletionListener(new OnCompletionListener()
{
    @Override
    public void onCompletion(MediaPlayer mp)
    {

    }
});