HTML5音频直播流。

18
我正在创建自己的音频,不受浏览器控制。

我正在创建自己的音频,不受浏览器控制。

<audio src="http://50.7.98.194:8081/~dl3/cgi-bin/dl.cgi/bqmu5mltxcqy43mxecgo4gnw743qr7fd7io22q5xj4/gl1mwvp6b326.mp3" id="audio">
</audio>

我有这些函数,在点击某些按钮时调用:

function play()
{
   audio.play();
}

function play()
{
   audio.pause
}

function stop()
{
   audio.pause();
   audio.src = audio.src;
}

但目前,我只能重现mp3或ogg文件,但无法播放直播流媒体。

我已经了解了一些插件,但我需要纯html5实现它。

你能帮我吗?非常感谢。

2个回答

25

现代浏览器似乎支持从“实时源”播放音频。基本上只需使用普通的HTML 5音频标签,并将“实时流”URL输入为源,例如:

<audio controls>
  <source src="http://audio-mp3.ibiblio.org:8000/wcpe.mp3" type="audio/mpeg">
  <source src="http://audio-ogg.ibiblio.org:8000/wcpe.ogg" type="audio/ogg">
</audio>

流媒体似乎“只是工作”,但尝试使用默认控件进行搜索却没有任何效果。因此,您可能需要用常规的 HTML5 媒体风格替换控件。为了向非 HTML5 浏览器保持向后兼容性,可以使用这个项目:https://github.com/etianen/html5media/wiki/Embedding-audio(尚未测试其是否适用于实时流媒体,但应该可以)主流浏览器似乎都支持 MP3 编解码器(除了可能是 Linux 上的 Firefox [?])。Opus 可能是另一个良好的跨平台选项,对于编解码选择来说,我不确定哪种是“最佳”选择。

对于某些流(我想是 Shoutcast),我不得不在 URL 中添加一个结束分号,请参见https://dev59.com/eHE95IYBdhLWcg3wn_Vr#3182814以了解更多信息,但基本上只是为了获得“正确”的 URL。


1
根据我的测试,截至今天(2017年3月5日),Firefox和Edge可以相当快地开始播放实时音频流(延迟为1到3秒),而Opera的延迟约为10秒。测试使用“audio/wav”进行。 - Hong

14

不幸的是,仍然没有一种视频和音频编解码器被所有浏览器支持!程序员必须确保提供了备选方案,以应对浏览器 A 不支持编解码器 B 以及反过来的情况。

你可以查看此兼容性表,包括桌面和移动浏览器。

桌面:

  • Internet Explorer(9.0+)支持 MP3 和 AAC 编解码器
  • Chrome(6.0+)支持 Ogg Vorbis,MP3,WAV+
  • Firefox(3.6+)支持 Ogg Vorbis,WAV
  • Safari(5.0+)支持 MP3,AAC,WAV
  • Opera(10.0+)支持 Ogg Vorbis,WAV

移动:

  • Opera Mobile(11.0+)支持的编解码器取决于设备
  • Android(2.3+)支持的编解码器取决于设备
  • Mobile Safari(iOS 3.0+ 的 iDevice)支持 MP3,AAC
  • Blackberry(6.0+)支持 MP3,AAC

由于 Flash 仍然普遍存在,它可能是最安全的备选方案。

另外,我想指出,使用某个库是最糟糕的选择,其中一些库(例如 jPlayer)提供了非常强大的接口,这只能帮助您生成更好的代码!

我认为你可以在以下文章中找到所有想知道的内容:HTML5 音频广播播放器 by Opera Devs


你好,感谢您的回答。似乎我的URL无法播放收音机,我尝试了这个电台http://listen.radionomy.com/abc-jazz,它可以正常播放!可能是端口的问题吗? - Daniel Garcia Sanchez
1
我认为这就是它无法启动的原因,你能否尝试使用另一个来源(例如mp3 / ogg流)? - Kristian Vitozev
它们都支持Opus吗? - rogerdpack

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