如何从基于Javascript的webapp录制音频?

时间:2008-09-15 15:35:52

标签: javascript audio web-applications

我正在尝试编写一个记录WAV文件的网络应用程序(例如:来自用户的麦克风)。我知道Javascript本身不能做到这一点,但我对最不专有的方法感兴趣,以增强我的Javascript。我的目标浏览器是用于PC和Mac的Firefox(因此没有ActiveX)。

我收集它可以用Flash完成(但不能作为WAV格式文件)。我收集它可以用Java完成(但不是没有代码签名)。这些是唯一的选择吗?

我想将文件记录为WAV,因为webapp的目的是组装一个良好质量的短声音库。我估计上传将是50 MB,这对于质量非常值得。该应用程序仅用于我们的Intranet。

更新:感谢JetPack即将推出的音频API,现在有了另一种解决方案:见https://wiki.mozilla.org/Labs/Jetpack/JEP/18

7 个答案:

答案 0 :(得分:7)

这是一个老线程,但问题仍然存在。应该注意的是,有一种方法可以在没有专有后端的情况下将音频录制到Flash中的服务器。这是一个让你入门的示例项目:

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

答案 1 :(得分:4)

Flash要求您使用媒体服务器(注意:我仍在使用Flash MX,但快速Google搜索会显示Flash CS3的文档似乎同意 - 请注意Flash CS4即将推出,可能会更改) 。 Macromedia / Adob​​e的目标是鞭打他们的媒体服务器,但Red5开源项目可能适合您的项目:

http://osflash.org/red5

我认为Java会更加合适。我见过一个applet可能会在Moodle(一个开源虚拟学习环境)上做你想要的东西:

http://64.233.183.104/search?q=cache:k27rcY8QNWoJ:moodle.org/mod/forum/discuss.php%3Fd%3D51231+moodlespeex&hl=en&ct=clnk&cd=1&gl=uk

(会员需要的网站,但对谷歌开放,因此该链接会转到Google缓存页面。)

答案 2 :(得分:2)

您唯一的选择是Flash,Java,ActiveX或编写自定义Firefox扩展。 Flash可能是您的最佳选择 - 您可以编写或使用现有的Flash应用程序进行录制,并将其他所有内容保存在纯Javascript中。

你为什么想要一个WAV文件?如果您计划在客户端处理波形的实际位,那么这可能是一个坏主意;客户端可能非常慢,您无法真正操作该文件。如果要将声音发送回服务器,那么发送压缩文件然后在服务器上解压缩它会好得多。

答案 3 :(得分:1)

Flash将是您最好的解决方案。

希望这会有所帮助:http://www.kirupa.com/forum/showthread.php?t=17331

答案 4 :(得分:0)

是的,我相信Flash或Java-Applet是唯一的方法。 由于您无法与麦克风交互,因此必须使用某种浏览器插件,这是使用麦克风的唯一方法。 我不知道任何其他插件可以提供这些功能。快速搜索谷歌没有透露任何进一步的可能性。 我认为最简单的就是使用Flash。

答案 5 :(得分:0)

如果您不介意安装插件的用户,另一个解决方案是使用Runtime Revolution RevWeb插件,该插件支持在浏览器中录制音频(并且实现起来很简单,我在大约10分钟内制作了一个测试小程序来确认这一点)。 http://revweb.runrev.com/

答案 6 :(得分:-2)

您可以下载Real Producer Basic,这是免费的(http://forms.real.com/rnforms/products/tools/producerbasic/),并将其作为activeX对象嵌入,因为它位于您的Intranet上。 Flash将以相同的方式嵌入,它位于所有办公室工作站上,但由于这是您的Intranet,您可以在所有具有AD的计算机上安装它。与wav和声音相比,真正的音频文件非常小。这是Real Sudio ActiveX操作指南的链接。 http://service.real.com/help/library/guides/activex/producerx.html