รหัสต้นฉบับที่นำมาจาก https://code.google.com/p/wami-recorder/ (ภายใต้ใบอนุญาต MIT)
การอัปเดตรหัสปรับแต่งสำหรับ jQuery และการแก้ไขบางอย่างโดย Ignacio Santolin
จากการเขียนนี้เบราว์เซอร์ส่วนใหญ่ยังไม่สนับสนุน Getusermedia ของ WebRTC ()
http://caniuse.com/#search=stream
ซึ่งสัญญาว่าจะให้การเข้าถึงไมโครโฟนนักพัฒนาเว็บผ่าน JavaScript โครงการนี้บรรลุสิ่งที่ดีที่สุดต่อไปสำหรับเบราว์เซอร์ที่รองรับแฟลช การใช้ WAMI Recorder คุณสามารถรวบรวมเสียงบนเซิร์ฟเวอร์ของคุณได้โดยไม่ต้องติดตั้งซอฟต์แวร์เซิร์ฟเวอร์สื่อที่เป็นกรรมสิทธิ์
เครื่องบันทึก WAMI ใช้แอพแฟลชน้ำหนักเบาเพื่อจัดส่งเสียงจากไคลเอนต์ไปยังเซิร์ฟเวอร์ผ่านโพสต์ HTTP มาตรฐาน นอกเหนือจากการตั้งค่าความปลอดภัยเพื่ออนุญาตให้เข้าถึงไมโครโฟนแล้วอินเทอร์เฟซทั้งหมดสามารถสร้างได้ใน HTML และ jQuery
แอพแฟลชเปิดเผยพารามิเตอร์และฟังก์ชันการทำงานที่สำคัญส่วนใหญ่ไปยัง JavaScript
Wami.startRecording(myRecordURL);
Wami.stopRecording();
Wami.startPlaying(anyWavURL);
Wami.stopPlaying();
คุณสามารถใช้ไลบรารี SWFObject ที่ได้รับการยอมรับอย่างดีเพื่อฝังแอพแฟลชแล้วเข้าถึงในลักษณะเดียวกับรหัสตัวอย่างของเรา ลองดูที่หน้า Quirks ของเราเพื่อทำความคุ้นเคยกับนิสัยแปลก ๆ ของ Flash และ JavaScript บนเบราว์เซอร์และระบบปฏิบัติการที่แตกต่างกัน
หากคุณต้องการแก้ไขเนื้อหาแฟลชคุณสามารถดาวน์โหลด Free Flex SDK และรวบรวมจากบรรทัดคำสั่ง สำหรับ IDE ที่เต็มเปี่ยมตัวเลือกฟรีของคุณมี จำกัด มากขึ้น สำหรับการใช้งานทางวิชาการเช่นการรวบรวมเสียงเพื่อการศึกษาผ่าน Amazon Mechanical Turk คุณสามารถลงทะเบียนสำหรับใบอนุญาต Adobe Flash Builder การศึกษาฟรี
หากคุณต้องการรวบรวมเสียงจากเบราว์เซอร์คุณไม่จำเป็นต้องโฮสต์เซิร์ฟเวอร์ของคุณเอง อย่างไรก็ตามคุณสมบัติที่สำคัญของโครงการนี้คือไม่จำเป็นต้องกำหนดค่าเซิร์ฟเวอร์ Flash Media ทั้งหมดเพื่อรวบรวมเสียงจากเว็บ คุณสามารถเลือกเทคโนโลยีฝั่งเซิร์ฟเวอร์ที่คุณต้องการ ตัวอย่างเช่นคุณสามารถโฮสต์สคริปต์ PHP ง่าย ๆ นี้บน Apache2:
ตัวอย่าง/เซิร์ฟเวอร์/php/writeaudio.php
ขอให้สังเกตว่ารหัสนี้เลือกใช้พารามิเตอร์ URL แบบสอบถามเพื่อระบุชื่อไฟล์ ด้วยสิทธิ์ที่เหมาะสมรหัส PHP จะเขียนไฟล์ด้วย NAM นี้ไปยังดิสก์ คุณสามารถส่งชื่อไฟล์อื่นทุกครั้งที่คุณบันทึกเพื่อแยกความแตกต่างระหว่างผู้ใช้แต่ละคนเซสชันและคำพูด คุณอาจต้องการใช้หมายเลขสุ่มที่สร้างขึ้นใน JavaScript และคุกกี้ที่เก็บไว้ในเบราว์เซอร์เพื่อติดตามผู้ใช้ข้ามการโหลดเบราว์เซอร์และเพื่อตั้งชื่อไฟล์ที่เกี่ยวข้อง ควรสังเกตว่าตัวอย่างข้างต้นทนทุกข์ทรมานจากปัญหาด้านความปลอดภัยและควรได้รับการแก้ไขสำหรับการปรับใช้จริง
Wami.startRecording('http://localhost/test.php?name=USER.SESSION.UTTERANCE.wav');
ภาวะแทรกซ้อนเล็กน้อยเกิดขึ้นหาก URL ที่คุณใช้สำหรับการเล่นหรือการบันทึกไม่ได้ชี้ไปที่โฮสต์เดียวกันที่ให้บริการไฟล์ SWF ในกรณีนี้คุณจะต้องให้บริการ crossdomain.xml ที่รากของโฮสต์ที่ให้บริการหรือบันทึกเสียง