ANDROID APP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
158 บทที่ 6 เทคนิคการทำางานร่วมกับมัลติมีเดีย<br />
m MediaRecorder.AudioEncoder :<br />
m AMR_NB – การเข้ารหัสข้อมูลประเภทช่วงความถี่เสียงแคบ<br />
ขั้นตอนในการบันทึกเสียง มีดังนี้<br />
1. สร้างอินสแตนซ์ของ MediaRecorder<br />
MediaRecorder m_Recorder = new MediaRecorder();<br />
2. กำหนดแหล่งข้อมูลที่จะใช้งาน อย่างเช่น ไมโครโฟน<br />
m_Recorder.setAudioSource(MediaRecorder.AudioSource.MIC);<br />
3. กำหนดประเภทของไฟล์เอาต์พุต และรูปแบบการเข้ารหัส<br />
m_Recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);<br />
m_Recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);<br />
4. กำหนดไดเร็กทอรีที่จะใช้ในการจัดเก็บข้อมูลที่บันทึก<br />
m_Recorder.setOutputFile(path);<br />
5. เริ่มการบันทึก<br />
m_Recorder.prepare();<br />
m_Recorder.start();<br />
เมื่อจบขั้นตอนการบันทึกเสียงแล้วก็สามารถใช้ชุดค ำสั่งก่อนหน้านี้มาเล่นไฟล์เสียงที่บันทึกไว้นี้ได้<br />
กรรมวิธี: การจัดการข้อมูลเสียงแบบ Raw<br />
เฟรมเวิร์ค MediaRecorder/MediaPlayer มักจะมีการใช้ในแอพที่ทำงานกับเสียงเป็นส่วน<br />
ใหญ่ แต่การที่เราจะทำงานกับข้อมูลเสียงแบบ Raw ซึ่งเป็นข้อมูลที่ส่งมาจากไมโครโฟนโดยตรงจะ<br />
ไม่มีการเก็บข้อมูลลงไฟล์นั้น เราจะใช้คำสั่ง AudioRecord และ AudioTrack แทน โดยในขั้นแรก<br />
เราต้องกำหนดสิทธิ์การบันทึกเสียงลงในไฟล์ Manifest ก่อนดังนี้<br />
<br />
และขั้นตอนการทำงานจะมีดังนี้<br />
1. สร้างอินสแตนซ์ของคลาส AudioRecord โดยกำหนดรายละเอียดดังนี้<br />
m แหล่งข้อมูลเสียง – ใช้คำสั่ง MediaRecorder.AudioSource ในการกำหนดแหล่ง<br />
ของข้อมูลอินพุตดังนี้<br />
MediaRecorder.AudioSource.MIC.<br />
m การผสมความถี่เสียง – ถ้าต้องการคุณภาพเสียงใกล้เคียงกับ CD ก็ให้ใช้ค่าเป็น<br />
44100 Hz หรือกำหนดเป็น 22050 Hz หรือ 11025 Hz ในระดับคุณภาพที่รองลงมา<br />
m ช่องสัญญาณเสียง – ใช้คำสั่ง AudioFormat.CHANNEL_IN_STEREO เพื่อบันทึก<br />
เสียงแบบสเตอริโอ หรือใช้คำสั่ง AudioFormat.CHANNEL_IN_MONO เพื่อบันทึก<br />
เสียงแบบโมโน<br />
m การเข้ารหัสข้อมูลเสียง – ใช้คำสั่ง AudioFormat.ENCODING_PCM_8BIT เพื่อเข้า<br />
รหัสข้อมูลแบบ 8 บิต หรือใช้คำสั่ง AudioFormat.ENCODING_PCM_16BIT<br />
เพื่อเข้ารหัสข้อมูลแบบ 16 บิต