我怎么能用HTML5播放shoutcast / icecast流?

时间:2010-04-30 08:43:47

标签: html5 streaming audio-streaming shoutcast icecast

是否可以使用HTML5播放shoutcast / icecast流?

如果是这样,我应该如何实施呢?

7 个答案:

答案 0 :(得分:47)

在http请求的末尾添加分号。这是shoutcast提出的协议,以覆盖它的浏览器检测。像这样:

<audio controls src="http://shoutcast.internet-radio.org.uk:10272/;"></audio>

答案 1 :(得分:18)

SHOUTcast存在一个很大的问题,我怀疑它是否会导致它甚至无法在支持MP3的Chrome中运行。

SHOUTcast可以提供三种不同类型的响应:

  • 本机-SHOUTcast“ICY”协议流式音频响应。如果访问流的播放器包含icy-metadata: 1标题,则决定执行此操作。

  • 没有额外元数据的普通HTTP流媒体音频响应,适用于没有ICY支持的媒体播放器。

  • “SHOUTcast D.N.A.S.状态“网页界面上的页面和其他页面。

如何决定是否提供网页而不是音频流?它猜测您是否使用Web浏览器。通过查看User-Agent标题是否以Mozilla/...开头。因为所有的网络浏览器都是Mozilla,对吧? Jeez,SHOUTcast。

因此,当Chrome尝试获取要播放的音频流时,SHOUTcast认为它是一个网络浏览器(嗯......就是这样)并且拒绝将音频流添加到音频标签中。而是获取管理员网页。

(我猜想Safari正在传递icy-metadata标题来避免这个问题,特别支持SHOUTcast。我现在无法测试它,因为Safari不会播放音频或视频。也许它想要我为此安装了QuickTime。也许它可以被填充。)

因此,您可能需要添加Flash音频播放器作为后备。

答案 2 :(得分:4)

<audio src="http://85.25.108.20:8090/;" controls autoplay></audio>

这应该可以正常工作,但要确保在流URL和端口之后存在/;。如果您不需要自动播放,请删除&#34;自动播放&#34; 标记。

答案 3 :(得分:3)

是。但它只在Safari中工作

    <!DOCTYPE html>
<audio controls src="http://shoutcast.internet-radio.org.uk:10272/"></audio>

原因Opera和Firefox不支持非免费编解码器

答案 4 :(得分:3)

答案 5 :(得分:0)

使用<audio&gt;重定向问题浏览器中的标记尝试添加&#34; / stream&#34;在流URL的末尾,用于防止重定向。

示例:

不工作: http://live-radio01.xxxxxx.com/2TJW/mp3

工作: http://live-radio01.xxxxxx.com/2TJW/mp3/stream

答案 6 :(得分:0)

我将Icecast与Easystream结合使用,以流式传输到Mac和PC。脚本设置了称为MP3 Sticky Player的音频播放器。瑞士法郎 在两种情况下,使用文档支持文件,播放器都可以按以下方式加载。

PC

<ul id="playlist" style="display:none;">
        <li data-path="http://99.250.117.109:8000/stream" data-thumbpath="thumbnail of whatever" data-downloadable="no" data-duration="00:00">
    </li>
</ul>

MAC

<audio style="width: 100%" controls="controls" autoplay="autoplay" src="http://99.250.117.109:8000/stream">
            Your browser does not support the <code>audio</code> element.
</audio>

由于我们已从任何mp3元数据中删除了图像,因此我们使用图像加载器来获取Icy-MetaData(仅供参考,您至少需要PHP 5.4才能正常运行),并为每首播放的播放器歌曲匹配一个封面目录。