创建网络电台

时间:2010-10-25 13:42:17

标签: javascript html5 audio streaming audio-streaming

我想开发一个可以即时发送和读取音频的Web示例应用程序。

我们的想法是开发一个HTML5 / JS网站。 所以,管理部分(用PHP或任何服务器端语言)将允许我发送音频 从麦克风。

然后,在客户端,用户可以使用<audio>标记来收听流。

有可能吗?有没有人使用强大的(开放/免费)解决方案呢?

谢谢,

问候。

8 个答案:

答案 0 :(得分:2)

您选择的任何解决方案都会遭受一台设备或另一台设备的不良接受,基于网络的解决方案更糟糕(每个人都广泛指出)。

如果您想覆盖尽可能多的受众,请设置像Icecast这样的流媒体服务器,并通过MP3和/或OGG进行广播(两者都更好)。几乎所有具有合理功能的互联网连接设备都能播放流式音频,因此请用户选择合适的播放器或其中最喜欢的播放器。

答案 1 :(得分:1)

interacting with devices有一个规格,例如麦克风,但它是早期的,我不知道有任何支持。

如果您想要今天可以与麦克风互动的东西,请查看Adobe Flash。

答案 2 :(得分:1)

我认为你不能用 JavaScript和HTML5做这样的事情。如果可以,我们很可能需要等待很长时间才能让客户在浏览器中使用它。就像David说的那样,Flash会起作用,问题在于:A)很多设备都不支持它而B)Flash远非免费。还有其他方法可以执行您所描述的内容,但它们需要其他编程或至少其他插件。我能想到的唯一另一个替代方案是来自微软的Silverlight,免费且不太难使用,它确实有麦克风支持,但不确定它有多棒。希望这会有所帮助。

答案 3 :(得分:1)

HTML音频标记未指定任何特定的编解码器,因此浏览器供应商可以自由选择。目前,没有人支持流式格式,尽管可能会发生这种情况。至于录制,我不确定你是否真的想支持浏览器无限制录制,因为你有并发问题?你真的会允许每个人一次录音吗?

对服务器上的流媒体会话录制进行限制访问似乎更有意义,然后允许通过浏览器对其进行存档访问。可以使用HTML AUDIO标签轻松执行检索,但基本上我们刚刚发明了播客。

答案 4 :(得分:1)

可以操纵音频标签来“流式传输”内容,但必须有几秒钟的缓冲区(至少)。将标记源重新设置为URL,每隔几秒钟提供下几秒(当然不是静态文件,而是从流动态提供)。管理员方面我认为你因为需要麦克风访问而陷入了插件。

答案 5 :(得分:1)

我认为你提出的建议在理论上是可行的,但在实践中,网络客户端和标准仍然不够成熟。例如,查看这个有趣的博客audio synthesis in JavaScript

现在,理论上:

备选方案1:等待浏览器添加对流式音频格式的支持(通常,音频标签目前支持WAV,OGG和/或MP3)。

备选方案2:自己实施流式传输......

对于服务器端(“麦克风”音频输入的东西),我认为你可以自由地做任何你想做的事情。例如,应该可以不将麦克风实际连接到服务器,而是让服务器从另一个源/服务器运行某种代码转换器进程。然后你可以有一个Web客户端连接到的CGI / FastCGI应用程序来获取最新的流窗口(流的一部分,比如1-5秒?)。

在Web客户端,您可以使用音频标记并从JavaScript控制它以使用新的流窗口定期更新它。不支持对音频样本进行排队,因此您必须提出某种自定义同步机制。一种解决方案可能是使用两个交叉渐变的同步音频样本(从而最大限度地减少由于时间不准确导致的咔嗒声和拾音)。

答案 6 :(得分:1)

Apple网站上的此文档可能正是您所需要的。它建议对iPad,iPhone和iPod Touch等设备使用HTTP Live Streaming:http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/introduction/introduction.html

你可能会追求自己。

答案 7 :(得分:1)

http://web.psung.name/zeya/ - 此应用程序即时转码您的音乐并使用HTML5对其进行流式处理。也许这会有所帮助;)