【问题标题】:MediaPlayer stops streaming audio playbackMediaPlayer 停止流式音频播放
【发布时间】:2013-01-19 08:38:44
【问题描述】:

我使用 MediaPlayer 通过 http 播放 mp3 流。在某些特定设备上,它不会太频繁地到达流的末尾。只是停下来。它只出现在 2.3.x 上,在 Jelly Bean 上无法捕捉到这个问题。 logcat 中唯一奇怪的几行:

02-04 17:34:14.379: ERROR/HTTPStream(95): recv failed, server is gone, total received: 54683 bytes
02-04 17:34:14.379: ERROR/HTTPStream(95): recv failed, errno = 9 (Bad file number)
02-04 17:34:14.379: ERROR/NuCachedSource2(95): source returned error -1004

OnCompletionListener 被调用(太早了)

似乎它只下载了 5MB 的流,并没有尝试下载更多。

主要发生在三星 Galaxy Ace 设备上。

【问题讨论】:

  • 有同样的问题。主要在三星 Galaxy Ace 上。
  • @Fedor 我有一个建议给你,但我想知道一些关于问题的具体原因。它是简单的 HTTP 流式传输吗?是只有某些流,还是所有流?
  • @Dave 它适用于我测试的所有流。
  • @Fedor 在我看来,该设备上的缓冲区溢出存在问题,因此当缓冲区已满且无法读取新数据时,它认为服务器已关闭。打印出的错误是因为读取返回 -1,但完整的缓冲区通常应返回 0。与 MediaPlayer 的许多问题一样,我认为您可以通过在设备上放置本地代理来解决此问题,以便您拥有更多控制权在流式传输的数据上。看我的回答here
  • 拥有本地代理后,您可以自己缓冲数据并限制发送给播放器的内容。对于嵌入式系统上的视频,我已经完全做到了这一点,并且它非常适合我所需要的。

标签: android audio-streaming android-mediaplayer


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多