原始代码从https://code.google.com/p/wami-recorder/(根据MIT许可)
代码更新,jQuery的调整以及Ignacio Santolin的一些修复程序
在撰写本文时,大多数浏览器仍然不支持WebRTC的GetuserMedia()
http://caniuse.com/#search=stream
有望通过JavaScript为Web开发人员麦克风访问。该项目为支持Flash的浏览器实现了下一个最好的事情。使用WAMI录音机,您可以在服务器上收集音频,而无需安装任何专有媒体服务器软件。
WAMI录音机使用标准HTTP帖子使用轻重量闪存应用程序将音频从客户端转移到服务器。除了允许麦克风访问的安全设置外,整个接口还可以在HTML和jQuery中构造。
Flash应用程序将其大多数重要参数和功能公开到JavaScript。
Wami.startRecording(myRecordURL);
Wami.stopRecording();
Wami.startPlaying(anyWavURL);
Wami.stopPlaying();
您可以使用备受尊敬的SWFOBJECT库嵌入Flash应用程序,然后以与我们的示例代码相同的方式访问它。查看我们的怪异页面,以熟悉不同浏览器和操作系统上的Flash和JavaScript的特质。
如果要修改Flash内容,则可以下载免费的FLEX SDK,并从命令行中进行编译。对于成熟的IDE,您的免费选项更加有限。供学术用途,例如通过亚马逊机械土耳其人收集音频进行研究,您可以注册免费的教育Adobe Flash Builder许可证。
如果要从浏览器收集音频,则无需托管自己的服务器。但是,该项目的一个关键功能是,不需要配置整个Flash Media服务器即可从Web收集音频。您可以选择您喜欢的任何服务器端技术。例如,您可以在Apache2上托管此简单的PHP脚本:
示例/服务器/php/writeaudio.php
请注意,此代码选择采用URL查询参数来指定文件名。有了适当的权限,PHP代码将使用此NAM到磁盘编写文件。每次记录时,您都可以传递其他文件名,以区分单个用户,会话和话语。您可能希望使用JavaScript中生成的随机数和存储在浏览器中的cookie来跟踪浏览器重新加载的用户并命名其相应的文件。应该注意的是,上面的示例遇到了安全问题,可能应修改以进行实际部署。
Wami.startRecording('http://localhost/test.php?name=USER.SESSION.UTTERANCE.wav');
如果您用于播放或录制的URL并不指向服务于SWF文件的主机,则会发生轻微的并发症。在这种情况下,您将需要在提供或记录音频的主机的根部提供crossdomain.xml。