Icecast:在 Android 开始播放时暂停

Icecast: pause in the beginning of streaming on Android

我有一个服务器 Icecast 与 Liquidsoap 一起使用来流式传输互联网广播,我注意到在某些 Android 设备(例如三星 Galaxy 选项卡)上接收音乐时出现问题 - 在几秒钟后buffering of the music 音乐的播放开始大约一秒钟,然后突然停止,然后又静默了几秒钟,然后才开始正常播放。在其他一些 Android 设备上,如 HTC desire - 没有发生这种情况 - 音乐在缓冲后开始正常播放。 这是相关流的示例:http://rdsradio.ru:8000/4th.mp3

当我在 Android 设备上的浏览器 (Google Chrome) 中打开 link 时会发生这种情况。结果相同,我使用 android.media.MediaPlayer class 从我目前开发的 Android 应用程序连接到 Icecast 流:mediaPlayer.setDataSource("http://rdsradio.ru:8000/4th.mp3");

此外,即使在那些有问题的设备上,我也可以正常连接并收听其他 Icecast 无线电源的流,例如 http://dancewave.hopto.org:9990/dance.mp3 - 这就是为什么我认为我的 Icecast + Liquidsoap 设置可能有问题 - 是什么让音乐在开始时停止播放。

<burst-on-connect>1</burst-on-connect>
<burst-size>64000</burst-size>

我尝试更改 /etc/icecast2/icecast.xml 中的那些参数,例如将 burst-size 增加到 10-20 倍或将 burst-on-connect 设置为 0,但没有注意到任何完全不同(我 运行 /etc/init.d/icecast2 reload 更改参数后重新加载配置)。

知道如何解决该行为吗?

更新:我尝试在 Android 上的 VLC 播放器中打开流,它没有问题,所以使用 android.media.MediaPlayer 似乎是问题(可能是内置的 [= Google Chrome 中的 36=] 音频播放器使用相同的库)。我会尝试在应用程序中使用不同的媒体播放器。

其实解决方法很简单。 icecast.xml 中的 burst-size 设置为 500000 解决了这个问题。早些时候我在更改 icecast.xml 后使用了 /etc/init.d/icecast2 reload 并且出于某种原因我认为突发大小也会以类似的方式在 Icecast 中更改,但它没有发生。只有重新启动 icecast 才真正改变了该设置。