我的应用程式中有这段程式码

 mp.start();

    play=mp.isPlaying();

    while(play)
    {
        play=mp.isPlaying();
    }

    mp.stop();
    mp.release();


当我调试(我使用的是真正的android设备)时,日志窗口会一直说“ V / Mediaplayer:isPlaying:1”。当我关闭应用程序时,它也会打印此字符串。我确定在播放文件后,我的应用会退出循环,因为它会在此部分之后执行所有指令。我也尝试使用OnCompletionListener,但是它不能像预期的那样工作。

我在AsyncTask中执行此代码,这可能是问题吗?

最佳答案

虽然while循环很可怕,但您不需要它,只需使用MediaPlayer回调或创建自己的回调

link of android mediaPlayer official documentation

接下来,您不能再调用.start()然后再调用stop()。.也许这是一个测试,但如果是实时代码,则可能会出现问题。

OnCompletionListener仅在播放曲目的末尾提供回调

为了跟踪播放器的状态,您可以使用枚举和接口进行自己的回调

关于java - Android-MediaPlayer继续前进,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28450036/

10-11 22:24
查看更多