Icecast对HTML5音频标签的支持?

3

使用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>

冰川流媒体的流链接,可以自动在浏览器中打开播放器。
http://91.121.59.45:8016/stream

2
这个 <audio src="http://91.121.59.45:8016/stream" autoplay="false" controls="true"></audio>JSFiddle 上似乎可以工作。 - T. D. Ben
我不确定这里发生了什么,因为我确信我尝试过那个语法,但它没有起作用,但现在我刚刚测试了一下,显然它可以。谢谢! - Fat Finger
1个回答

8
“使用HTML5的AUDIO标签播放Icecast流是否可行?”
是的,完全可以。唯一的要求是浏览器支持你正在流式传输的编解码器。
“我正在使用的语法似乎对ShoutCast很满意,但对Icecast却不行,这让我很困惑。”
所有这些带有分号的流URL都仅适用于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" />

(除非您支持多个编解码器,否则您将使用多个来源。)

我之前尝试过这个,但似乎不起作用。 - Fat Finger
3
请确保使用 src="http://91.121.59.45:8016/stream"(看起来 Brad 犯了一个错误,我的编辑还没有显示出来)。 - TBR
1
谢谢@TBR!编辑仍然没有显示出来,所以我只是进行了更正。 - Brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接