java - Android - 检测流结束而不是 MediaPlayer 中的连接错误

标签 java android android-mediaplayer

在收听 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/

相关文章:

java - java中的if语句帮助

java - 从 java 调用 scala - 性能?

android - 尝试连接CC接收器时Android应用程序崩溃

android - 在 Activity 创建时更改 TextView 值

java - 我必须重构我的代码,但不知道将碰撞方法放在哪里

android - 重启时重新验证 - Android

android - 音频无法在android中播放。 android.content.res.Resources $ NotFoundException:资源ID#0x0

Android媒体播放器: streaming audio file from HTTPS Url

java - 从android中的xml数组获取资源

java - SimpleDateFormat 在 Android 和 JDK 中产生不同的时区输出