20.11.2016 Views

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 บิต

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!