我有一台服务器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中更改这些参数,比如将突发大小增加到10-20次或将连接突发设置为0,但根本没有注意到任何差异(I更改参数以重新加载配置后运行/etc/init.d/icecast2 reload
。
任何想法 - 如何解决这种行为?
更新:我尝试在Android上的VLC播放器中打开流,它没有问题,所以看起来使用android.media.MediaPlayer(可能是谷歌Chrome中内置的HTML5音频播放器)的问题使用了同一个图书馆)。我将尝试在应用程序中使用不同的媒体播放器。
答案 0 :(得分:1)
实际上,解决方案很简单。 icecast.xml中的突发大小设置为500000解决了这个问题。之前我在更改icecast.xml之后使用了/etc/init.d/icecast2 reload
,出于某种原因,我认为爆破大小也会以类似的方式在Icecast中发生变化,但事实并非如此。只重新启动icecast实际上改变了那个设置。