在收听 1 小时的 mp3 流时,如果用户断开连接(或从 WIFI 更改为 3G 并且连接“掉线”一秒钟),我们注意到 MediaPlayer 会继续播放它缓冲的内容。一旦缓冲内容用完,如果它没有完成到文件末尾,我会假设它会触发错误事件,但它会将状态更改为 PLAYBACK_COMPLETE。我们如何确定播放结束是由于连接错误(连接丢失)还是实际播放完成?我唯一能想到的就是在 MediaPlayer 将状态更改为 PLAYBACK_COMPLETE 时检查 currentPostion 与 totalDuration。有没有更好的办法?
最佳答案
如果它没有触发 onError()
事件,你可以尝试注册一个OnBufferingUpdateListener
查看缓冲百分比是否达到100%。如果连接丢失,播放完成时百分比将小于 100%。
关于java - Android - 检测流结束而不是 MediaPlayer 中的连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290669/