Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 重新初始化mediaplayer后OnCompletionListener不工作_Android_Media Player - Fatal编程技术网

Android 重新初始化mediaplayer后OnCompletionListener不工作

Android 重新初始化mediaplayer后OnCompletionListener不工作,android,media-player,Android,Media Player,如果mySound没有更改,代码可以正常工作。但是当mySound发布并重新初始化后,代码就不再有效了。谷歌引用: 使用MediaPlayer后,应调用release(),以释放 资源。如果不发布,将导致太多MediaPlayer实例 在例外情况下 调用release()后,如果需要再次使用,必须创建MediaPlayer的新实例并重新初始化,还包括setOnCompletionListener mySound.setOnCompletionListener(new OnCompletionLi

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

谷歌引用:

使用MediaPlayer后,应调用release(),以释放 资源。如果不发布,将导致太多MediaPlayer实例 在例外情况下

调用
release()
后,如果需要再次使用,必须创建
MediaPlayer
的新实例并重新初始化,还包括
setOnCompletionListener

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

似乎在重新初始化后,未设置
setOnCompletionListener
。当然它不会工作,因为您已经创建了一个新的引用,并且必须重新初始化。请您的答案解释一下为什么此代码会回答这个问题?仅代码的答案是,因为它们不会教授解决方案。即使重置media player,也需要重新设置
mPlayer.release();
mPlayer = null;  

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

    }
});