Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从基于Javascript的Web应用程序录制音频?_Javascript_Audio_Web Applications - Fatal编程技术网

如何从基于Javascript的Web应用程序录制音频?

如何从基于Javascript的Web应用程序录制音频?,javascript,audio,web-applications,Javascript,Audio,Web Applications,我正在尝试编写一个记录WAV文件的web应用程序(例如:从用户的麦克风)。我知道Javascript本身不能做到这一点,但我对用最不专有的方法来扩充我的Javascript感兴趣。我的目标浏览器是针对PC和Mac的Firefox(因此没有ActiveX) 我收集它可以用Flash完成(但不能作为WAV格式的文件)。我想这可以用Java来完成(但不需要代码签名)。这些是唯一的选择吗 我想将该文件记录为WAV,因为webapp的目的是组装一个高质量的短片段库。我估计上传将是50MB,这是非常值得的质

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

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

我想将该文件记录为WAV,因为webapp的目的是组装一个高质量的短片段库。我估计上传将是50MB,这是非常值得的质量。该应用程序将仅在我们的内部网上使用


更新:得益于JetPack即将推出的音频API,现在有了另一种解决方案:请参阅Flash将是您的最佳解决方案


希望这会有所帮助:

是的,我相信Flash或Java小程序是实现这一点的唯一方法。 由于您无法与麦克风交互,因此必须使用某种浏览器插件,这是使用麦克风的唯一方法。 我不知道还有其他插件可以提供这种功能。在谷歌上快速搜索并没有发现任何进一步的可能性。
我认为最简单的方法是使用Flash。

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


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

Flash要求您使用媒体服务器(注意:我仍在使用Flash MX,但快速的谷歌搜索显示Flash CS3的文档似乎是一致的-注意,Flash CS4即将推出,届时可能会发生变化)。Macromedia/Adobe旨在向您提供他们的媒体服务器,但Red5开源项目可能适合您的项目:

我认为Java将更加适合。我已经看到了一个小程序,它可以在Moodle(一个开源虚拟学习环境)上做你想做的事情:


(该网站需要会员资格,但对谷歌开放,因此链接指向谷歌缓存页面)。

你可以下载Real Producer Basic,这里免费(),并将其作为activeX对象嵌入,因为它位于您的intranet上。Flash将以相同的方式嵌入,它位于所有的办公工作站上,但由于这是您的intranet,您可以将其安装在所有带有AD的机器上。与wav相比,真实的音频文件非常小,听起来很棒。下面是指向真正的Sudio activeX操作指南的链接。

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

这是一个旧线程,但问题仍然存在。需要注意的是,有一种方法可以在没有专用后端的情况下将音频录制到Flash服务器上。下面是一个示例项目:


从Flash 10开始,您不需要媒体服务器。您可以捕获原始样本,并通过HTTP post将其发送到任意后端。我想说,这个答案比2008年接受的答案要好,因为它具有相同的效果,但不需要专用服务器组件。这仍然不是一个完整的解决方案,因为它无法在苹果上运行广泛使用的移动设备。希望不久将出现一个合理的跨平台标准,该标准结合了本机录制、开放文件格式和普通HTTP post。也许您会发现这很有用: