我的应用程式中有这段程式码
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/