【问题标题】:How does one record audio from a Javascript based webapp? [closed]如何从基于 Javascript 的 web 应用程序中录制音频? [关闭]
【发布时间】:2010-09-09 00:07:39
【问题描述】:

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

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

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

更新:由于 JetPack 即将推出的音频 API,现在有一个替代解决方案:请参阅 https://wiki.mozilla.org/Labs/Jetpack/JEP/18

【问题讨论】:

标签: javascript audio web-applications


【解决方案1】:

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

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

【讨论】:

  • 我想说这个答案比 2008 年接受的答案要好,因为它具有相同的效果,但不需要专用的服务器组件。它仍然不是一个完整的解决方案,因为它不适用于广泛使用的 Apple 移动设备。希望一个结合原生录制、开放文件格式和纯 HTTP post 的合理跨平台标准很快就会出现。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您可以在此处免费下载 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

    【讨论】:

      【解决方案4】:

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

      http://osflash.org/red5

      我认为 Java 会更适合。我在 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 开放,因此链接会转到 Google 缓存页面)。

      【讨论】:

      • 从 Flash 10 开始,您不需要媒体服务器。您可以捕获原始样本并将它们发送到带有 HTTP 帖子的任意后端。 code.google.com/p/wami-recorder
      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            猜你喜欢
            • 2013-03-06
            • 1970-01-01
            • 2016-02-17
            • 1970-01-01
            • 1970-01-01
            • 2023-03-06
            • 2012-11-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多