HTML5音频流传输

7
有人在stackoverflow上讨论过这个问题,但是从我看到的来说,没有什么回答能够解决这个问题。
我正在尝试实现一个流媒体音频Web应用程序。几乎与WFMU的播放器完全相同(http://wfmu.org/html5/player.php)。
从他们的流中,我只能弄清楚他们将流传输到PHP中,不知道以什么格式,并将其提供给jPlayer以便HTML5呈现给客户端。
他们已经很好地实现了这一点,但我不确定他们是如何将音频馈入PHP并在其PHP中进行处理,以使其以HTML5可接受的格式呈现。
任何想法都将不胜感激。
看起来PHP脚本只是回显出一个音频文件(http://blogfiles.wfmu.org/DG/stream3.php)。

正如你在问题中所指出的,这不是一个HTML5的问题。他们只是从你提到的第二个URL播放音频源(就像你的浏览器插件一样)。如果你尝试用浏览器下载它,你会发现它是一个非常缓慢地传输mp3(或ogg)文件。问题是如何在PHP端实现这一点。HTML5方面很简单,已经解决了。 - Dan Rosenstark
是的,那就是我的最终问题。如果在上面那个冗长的问题中变得有些模糊,请原谅。尝试确定他们正在使用哪些PHP函数来调用音频,这可能只是一个简单的fread。如果是这种情况,我需要知道他们是否在任何网页涉及之前编译了一个MP3的实时供稿。 - Mike Soule
@MikeSoule - 自从你提出这个问题以来,你有任何进展吗? 有什么可以分享的吗? 我想做类似的事情。 - Jonathan
@Jonathan 抱歉回复晚了!是的,我取得了不错的进展。最终我没有用PHP编写缓冲和流媒体,而是使用了带有Flash备份的HTML5。我使用了SoundManager2 Javascript API来实现这一点。这个非常好用,这里有一个我用于测试的例子:http://soule.biz/bombshelter.fm/player/。CSS不太漂亮,但是你可以通过查看我的源代码来了解SM2的工作原理。他们的网站上也有大量的示例。顺便说一下,我正在使用Icecast进行流媒体传输,并从该服务器传递给SM2一个经过MP3编码的流。如果你有问题,请让我知道。 - Mike Soule
1个回答

2
没有使用 PHP 的要求。对于客户端,所有需要的是发送适当的内容类型和实际内容。在这种情况下,是 audio/mpeg(MP3)或者针对 Firefox 的 OGG(虽然它现在不能用,但它确实可以用)。
我怀疑他们使用 PHP 来转发流的原因是,他们将 SHOUTcast 作为流媒体服务器。经过一些探索,我找到了这个:http://mp3stream.wfmu.org:8000/ 请注意,当您在浏览器中输入该 URL 时,会获得基本信息页面。然而,如果您使用音频播放器访问,则会收到流。SHOUTcast 服务器根据 User-Agent 字符串来决定这一点。如果 User-Agent 中含有“Mozilla”,则返回此页面。如果没有,则返回流。所以,对于 HTML5 音频播放器,它将使用浏览器的 User-Agent(其中包含 Mozilla),无法访问流。我认为他们的 PHP 脚本是解决这个问题的方法。
PHP脚本将使用cURL,使用自己的User-Agent(可以是任何东西,只要不是“Mozilla”),连接到流媒体服务器,并将块逐个中继到命中PHP脚本的浏览器。非常简单。

听起来像是解决方案。非常感谢,这至少可以让我走上正确的轨道,因为我已经有一个正在流媒体IceCast服务器。谢谢。 - Mike Soule

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