mySound.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();...
}
如果mySound没有更改,代码工作正常。但是当mySound发布并重新初始化时,代码将不再有效。
答案 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)
{
}
});