Saya ingin merekam suara manusia di ponsel Android saya. Saya perhatikan bahwa Android memiliki dua kelas untuk melakukan ini: AudioRecord dan MediaRecorder . Dapatkah seseorang memberi tahu saya apa perbedaan antara keduanya dan kasus penggunaan apa yang sesuai untuk masing-masing?
Saya ingin dapat menganalisis ucapan manusia secara waktu nyata untuk mengukur amplitudo, dll. Apakah saya benar dalam memahami bahwa AudioRecord lebih cocok untuk tugas ini?
Saya perhatikan di halaman web panduan Android resmi untuk merekam audio , mereka menggunakan MediaRecorder tanpa menyebutkan AudioRecord.
sumber
Seperti yang saya pahami
MediaRecorder
adalah kotak hitam yang memberikan file audio terkompresi pada output danAudioRecorder
memberi Anda aliran suara mentah dan Anda harus mengompresnya sendiri.MediaRecorder
memberi Anda amptitude maksimal dari panggilan terakhirgetMaxAmplitude()
metode sehingga Anda dapat mengimplementasikan visualisator suara misalnya.Jadi dalam banyak kasus
MediaRecorder
adalah pilihan terbaik kecuali di mana Anda harus membuat beberapa pemrosesan suara yang rumit dan Anda memerlukan akses ke aliran audio mentah.sumber
AudioRecorderer pertama-tama menyimpan data di minBuffer kemudian disalin dari sana ke buffer sementara, di MediaRecorder data tersebut disalin ke file. Di AudioRecorder kita membutuhkan api setRecordPosition () untuk menyalin data yang disimpan pada posisi yang diperlukan, sedangkan di MediaRecorder file pointer melakukan tugas ini untuk mengatur posisi marker. AudioRecorder dapat digunakan untuk aplikasi yang berjalan di emulator. Hal ini dapat dilakukan dengan memberikan frekuensi sampel rendah seperti 8000, saat menggunakan MediaRecorder, audio tidak dapat direkam menggunakan emulator. Di AudioRecord, layar akan tidur setelah beberapa saat, sedangkan di MediaRecorder layar tidak tidur.
sumber