我在我的应用中使用了这段代码
mp.start();
play=mp.isPlaying();
while(play)
{
play=mp.isPlaying();
}
mp.stop();
mp.release();
当我调试(我使用真正的Android设备)时,日志窗口会继续说" V / Mediaplayer:isPlaying:1"。它在关闭应用程序时也打印此字符串。我确定我的应用程序在播放文件后退出循环,因为它在此部分之后执行所有指令。我也尝试使用OnCompletionListener,但它并没有像它应该的那样工作。
我在AsyncTask中执行此代码,可能是这个问题吗?
答案 0 :(得分:0)
虽然循环很糟糕但你不需要它,只需使用MediaPlayer回调或创建你自己的
link of android mediaPlayer official documentation
接下来你不能在之后调用.start()然后停止()。也许这是一个测试,但如果它是实时代码则可能是个问题。
OnCompletionListener仅在回放轨道的末尾为您提供回调
为了跟踪播放器的状态,您可以使用枚举和界面进行自己的回调