ฉันกำลังบันทึกเสียงสำหรับข้อความเสียงในแอปโดยใช้รหัสต่อไปนี้
MediaRecorder audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
audioRecorder.setOutputFile(audioRecordingFile);
audioRecorder.prepare();
audioRecorder.start();
การใช้MediaRecorder.AudioSource.VOICE_COMMUNICATIONแทนที่จะใช้MediaRecorder.AudioSource.MIC)มีประโยชน์อย่างมากในการบันทึกไฟล์เสียงที่ผ่านการประมวลผลล่วงหน้า
แต่เมื่อเร็ว ๆ นี้ฉันพบปัญหาบางอย่างที่ไฟล์ที่บันทึกว่างเปล่ากำลังรายงานบนอุปกรณ์บางอย่างที่เพิ่งได้รับการอัปเดตเป็น Android 10 ควรทราบว่าอุปกรณ์ Android 10 ทั้งหมดมีปัญหาเหล่านี้เพียงเล็กน้อยเช่น Nokia 6.1 และ Mi A2
ไม่มีข้อผิดพลาดหรือข้อยกเว้น แต่เพียงไฟล์เสียงที่ว่างเปล่า
หากฉันใช้MediaRecorder.AudioSource.MIC)แสดงว่าไม่เห็นปัญหา
ฉันพบข้อมูลต่อไปนี้ที่เกี่ยวข้องกับ Android 10 และ VOICE_COMMUNICATION การเปิดตัว Android 10 มีข้อกำหนดต่อไปนี้สำหรับการจับภาพด้วย VOICE_COMMUNICATION
จากนี้ฉันจะตรวจสอบความพร้อมใช้งานของ AcousticEchoCanceler, AutomaticGainControl และ NoiseSuppressor โดยใช้รหัสต่อไปนี้
AcousticEchoCanceler.isAvailable()
AutomaticGainControl.isAvailable()
NoiseSuppressor.isAvailable()
และพบผลลัพธ์เดียวกันกับ Mi A2 และ OnePlus 6 ที่ใช้ Android 10 อุปกรณ์ทั้งสองแสดง AcousticEchoCanceler และ NoiseSuppressor พร้อมใช้งานและ AutomaticGainControl ไม่พร้อมใช้งาน
เนื่องจากปัญหาไม่ได้อยู่บนอุปกรณ์ Android ทุกฉันสวม `t ต้องการที่จะถอยกลับในการใช้MediaRecorder.AudioSource.MIC) ในเวลาเดียวกันมีข้อผิดพลาดไม่มีข้อยกเว้นหรือปัจจัยที่แตกต่างซึ่งจะบอกฉันเมื่อเพื่อถอยกลับในMediaRecorder.AudioSource.MIC)
UPDATE: ปัญหาได้รับการแก้ไขเมื่อ Google Assistant ถูกปิดใน Mi A2 นี่อาจเป็นตัวชี้: https://developer.android.com/guide/topics/media/sharing-audio-input
ความช่วยเหลือใด ๆ เกี่ยวกับเรื่องนี้ชื่นชม