我一直在寻找几天不使用Flash Player就能在所有主要浏览器中进行SHOUTcast流式传输的方法,但我一直无法做到(除了Safari):

<audio controls src="http://38.96.175.97:7736/;"></audio>

“src”属性末尾的分号强制SHOUTcast服务器忽略用户代理字符串,而改用MPEG OVERRIDE,后者不包含Mozilla,并且被假定为音频播放器。不幸的是,到目前为止,这个技巧只对我有效。

有谁知道如何在其他浏览器(Chrome,Firefox等)中执行此操作?

最佳答案

问题不在于用户代理侦听的问题,而是SHOUTcast服务器不发送标准HTTP响应的事实。

正常的HTTP响应从状态行开始,如下所示:

HTTP/1.0 200 OK

SHOUTcast服务器将其发送为:
ICY 200 OK

这适用于许多HTTP客户端,但是越来越多的HTTP客户端在这样的响应上中断。

解决方案是停止使用SHOUTcast。 Icecast是一个很好的选择。我编写了自己的AudioPump Server,以帮助实现浏览器和Android客户端的兼容性。

如果您要播放的电台不是您的电台,则必须通过自己的服务器代理该播放,以解决状态行问题。

10-06 12:39