5

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

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

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

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

4

7 回答 7

7

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

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

于 2011-11-25T15:27:32.340 回答
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 缓存页面)。

于 2008-09-15T21:08:39.433 回答
2

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

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

于 2008-09-15T15:54:05.337 回答
1

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

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

于 2008-09-15T15:47:52.153 回答
0

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

于 2008-09-15T15:49:07.003 回答
0

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

于 2010-08-12T03:16:39.407 回答
-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

于 2008-09-15T21:19:38.330 回答