是否可以使用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
答案 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。)