Icecast的HTML5音频标签支持?

时间:2016-07-17 05:56:27

标签: html5 audio shoutcast icecast internet-radio

是否可以使用HTML5的AUDIO标签播放Icecast流?我使用的语法对于ShoutCast来说似乎很开心,但不是我很困惑的Icecast。此外,如果我浏览到Icecast流的某个URL,浏览器窗口会自动显示该播放器(参见上一个示例)。

工作ShoutCast示例。

<audio src="http://107.182.233.214:8000/;listen.pls?sid=1" autoplay="true" muted="false" controls="true" volume="1.0"></audio>

非工作的Icecast示例。

<audio src="http://91.121.59.45:8016/;stream" autoplay="false" muted="false" controls="true" volume="1.0"></audio>

<audio src="http://91.121.59.45:8016/stream" autoplay="false" muted="false" controls="true" volume="1.0"></audio>

<audio src="http://91.121.59.45:8016" autoplay="false" muted="false" controls="true" volume="1.0"></audio>

Icecast流网址,可在浏览器中自动打开播放器。

http://91.121.59.45:8016/stream

1 个答案:

答案 0 :(得分:7)

  

是否可以使用HTML5的AUDIO标签播放Icecast流?

是的,绝对。

唯一的要求是浏览器支持您正在流式传输的编解码器。

  

我正在使用的语法对于ShoutCast似乎很满意,但不是我很困惑的Icecast。

所有带分号;的流网址仅适用于SHOUTcast。 SHOUTcast服务器在与流相同的URL上运行其管理界面。他们执行用户代理嗅探以确定客户端是Web浏览器还是音频播放器。当网页多年前开始播放音频时,他们需要一种方法来解决这个问题,以便浏览器可以获得音频流。其中带有分号的流URL强制SHOUTcast忽略浏览器的用户代理并将其替换为“MPEG OVERRIDE”,这会导致服务器的其余部分返回流。

只需要;。整个;stream事件只是被复制和粘贴的不必要的东西。

您可以在此处阅读更多内容:https://stackoverflow.com/a/38217135/362536

至于Icecast流,你需要的只是:

<audio src="http://91.121.59.45:8016/stream" />

(除非你支持多个编解码器,在这种情况下你会use multiple sources。)