2010-10-22 556 views
0

我的客户端需要让用户从浏览器记录消息,然后将消息导出为音频文件(例如WAV)。如何从浏览器捕获音频?

这最好的做法是什么? Flash,Java,HTML5?最好的是,我的意思是直接实施并得到广泛支持。

人们使用HTML5的经验是什么?

谢谢!

+1

HTML5取得API还尚未实施,因此Flash现在是唯一的选择。 – 2010-10-22 20:15:24

回答

4

Flash是一种选择,但您需要一个媒体流服务器(Adobe Media Server,Wowza,Red5)。没有办法在本地捕获和存储音频到文件。

如果您愿意使用Java小程序,那么有多种解决方案。所有这些都需要访问本地文件系统,并会要求用户提供额外的权限。例如,尝试http://www.javasonics.com/或Google“applet record audio”。

更新:自Flash 10.0以来,可以选择使用Microphone和SampleDataEvent.SAMPLE_DATA。这可以访问来自麦克风的原始音频数据。看到这个项目的实施:http://code.google.com/p/micrecorder/

+0

从Flash 10开始,您不需要媒体服务器。您可以捕获原始样本并将它们发送到任意后端并附带HTTP邮件。 https://code.google.com/p/wami-recorder/ – 2011-12-04 18:10:02

+0

Thx,你是对的。此外还有micrecorder:http://code.google.com/p/micrecorder/ – 2011-12-04 21:05:27

1

嗯,我怀疑这样的HTML5功能将是非常不标准的,并且浏览器的支持会有很大的不同(许多浏览器不包括任何)。

Java并不像Flash那么受欢迎,还有很多人根本没有JRE。

因此,总而言之,我会在这种情况下为Flash解决方案。也许在某些有限情况下使用HTML5后备资源时,资源允许。

0

假设你的意思是“出口”到服务器,在这里是不需要Flash Media Server的一个开放源代码的闪存解决方案:

https://code.google.com/p/wami-recorder/

记录是通过HTTP发送到您选择的服务器端技术。在最简单的情况下,您可以捕捉并保存4行的PHP代码音频:

<? 
$content = file_get_contents('php://input'); 
$fh = fopen('output.wav', 'w') or die("can't open file"); 
fwrite($fh, $content); 
fclose($fh); 
?> 

对于HTML5的支持,留意getUserMedia()