原始代碼從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。