如何录制基于Javascript的网络应用的音频?
我正在尝试编写一个记录WAV文件的Web应用程序(例如:从用户的麦克风发送)。我知道仅靠Javascript无法做到这一点,但是我对最专有的方法来增强Javascript感兴趣。我的目标浏览器是PC和Mac的Firefox(因此没有ActiveX)。
我认为可以使用Flash(但不能将其作为WAV格式的文件)来完成。我收集到它可以使用Java来完成(但不是没有代码签名)。这些是唯一的选择吗?
我想将文件记录为WAV,因为Webapp的目的是组装高质量短音轨库。我估计上传将为50 MB,这对于质量而言是非常值得的。该应用程序将仅在我们的Intranet上使用。
更新:由于JetPack即将推出的音频API,现在有了替代解决方案:请参阅https://wiki.mozilla.org/Labs/Jetpack/JEP/18
解决方案
回答
Flash将是我们最好的解决方案。
希望这会有所帮助:http://www.kirupa.com/forum/showthread.php?t=17331
回答
是的,我相信Flash或者Java-Applet是实现此目的的唯一方法。
由于我们无法与麦克风互动,因此我们必须使用某种浏览器插件,这是使用麦克风的唯一方法。
我不知道会提供该功能的任何其他插件。在Google上进行的快速搜索没有发现任何进一步的可能性。
我认为最简单的方法是使用Flash。
回答
我们唯一的选择是Flash,Java,ActiveX或者编写自定义Firefox扩展。 Flash可能是我们最好的选择,我们可以编写或者使用现有的Flash应用程序进行记录,并将几乎所有其他内容都保留在纯Javascript中。
为什么要WAV文件?如果我们打算在客户端上处理波形的实际位,那可能是个坏主意;客户端可能真的很慢,我们将无法真正操作该文件。如果要将声音发送回服务器,则最好发送压缩文件,然后在服务器上将其解压缩。
回答
Flash要求我们使用媒体服务器(请注意:我仍在使用Flash MX,但是Google进行了快速搜索,提出了Flash CS3的文档,似乎同意Flash CS4即将推出,然后可能会更改)。 Macromedia / Adobe的目标是鞭打媒体服务器,但是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=zh-CN&ct=clnk&cd=1&gl=uk
(需要会员资格的网站,但对Google开放,因此链接指向Google缓存页面)。
回答
我们可以在此处免费下载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
回答
如果我们不介意安装插件的用户,另一种解决方案是使用Runtime Revolution RevWeb插件,该插件支持在浏览器中录制音频(实现起来很简单,我制作了一个测试applet在大约10分钟内确认了这一点)。 http://revweb.runrev.com/