我有一台服务器 Icecast 与 Liquidsoap 一起使用流式传输互联网广播,我注意到在某些 Android 设备(例如三星 Galaxy 选项卡)上接收音乐时出现问题 - 在音乐缓冲几秒钟后播放音乐开始大约一秒钟,然后突然停止,然后再沉默几秒钟,然后才开始正常播放。在其他一些 Android 设备上,如 HTC 的愿望 - 没有这样的事情发生 - 音乐在缓冲后开始正常播放。以下是相关流的示例:http ://rdsradio.ru:8000/4th.mp3
当我在 Android 设备上的浏览器 (Google Chrome) 中打开链接时,就会发生这种情况。同样的结果,我使用 android.media.MediaPlayer 类从我目前开发的 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 中的内置 HTML5 音频播放器使用相同的库) . 我将尝试在应用程序中使用不同的媒体播放器。