【发布时间】:2015-01-28 10:41:44
【问题描述】:
显然没有抛出异常,因此我可以在缓冲流式音频内容时识别错误。例如,我已断开路由器的连接,应用程序将继续尝试缓冲整个时间。当我重新连接时,它会完成缓冲并在断开连接超过一分钟后继续!
所以问题是我不能让我的用户坐那么久而不考虑这个问题。检测 Android 媒体播放器缓冲问题的正确方法是什么?
我正在考虑使用Timer 进行超时。我可能会从 15 秒开始(使用代理我测试了 5kbps 连接,这是最坏的情况,能够在 6-10 秒内开始播放,所以我认为 15 秒是一个合理的超时时间)。这听起来像是一个好计划吗?如果是这样,我应该在每次缓冲区尝试时创建一个新的 Timer,还是应该在播放服务的整个生命周期内保持相同的 Timer?
所以基本上我要问两个问题:
1) 检测缓冲区是否有问题的正确方法是什么?有没有我忽略的听众?我已经尝试过 MediaPlayer.OnErrorListener 当然在我的测试中没有触发。我的结论是我必须有一个超时来检测缓冲错误。
2) 如果我在第一点上是正确的,那么使用计时器的正确方法是什么?每次尝试缓冲区时创建一个或重复使用相同的缓冲区? 编辑 我还应该重新启动(或取消并创建一个新的)Timer onBufferUpdate 吗?使用 onBufferUpdate 侦听器,我应该知道一些数据正在返回,因此可能应该用它重置计时器。
【问题讨论】:
标签: android timer android-mediaplayer