อินพุตไมโครโฟน

เมื่อบันทึกเสียง Audio HAL จะได้รับการเรียก openInputStream ซึ่งมีอาร์กิวเมนต์ AudioSource เพื่อระบุวิธีประมวลผลอินพุตไมโครโฟน

แหล่งที่มาของ VOICE_RECOGNITION คาดว่าจะมีสตรีมไมโครโฟนสเตอริโอที่มีเอฟเฟกต์การยกเลิกเสียงก้อง (ถ้ามี) แต่ไม่มีการประมวลผลอื่นใดที่ใช้อยู่

อินพุตไมโครโฟนหลายช่องสัญญาณ

หากต้องการบันทึกเสียงจากอุปกรณ์ที่มีมากกว่าสองช่องสัญญาณ (สเตอริโอ) ให้ใช้มาสก์ดัชนีช่องแทนมาสก์ดัชนีตำแหน่ง (เช่น CHANNEL_IN_LEFT ) ตัวอย่างเช่น:

final AudioFormat audioFormat = new AudioFormat.Builder()
    .setEncoding(AudioFormat.ENCODING_PCM_16BIT)
    .setSampleRate(44100)
    .setChannelIndexMask(0xf /* 4 channels, 0..3 */)
    .build();
final AudioRecord audioRecord = new AudioRecord.Builder()
    .setAudioFormat(audioFormat)
    .build();
audioRecord.setPreferredDevice(someAudioDeviceInfo);

เมื่อตั้งค่าทั้ง setChannelMask และ setChannelIndexMask แล้ว AudioRecord จะใช้เฉพาะค่าที่กำหนดโดย setChannelMask (สูงสุด 2 ช่อง)

การจับพร้อมกัน

สำหรับ Android 10 เฟรมเวิร์ก Android รองรับ การบันทึกอินพุตพร้อมกัน แต่มีข้อจำกัดในการปกป้องความเป็นส่วนตัวของผู้ใช้ ส่วนหนึ่งของข้อจำกัดเหล่านี้ แหล่งที่มาเสมือน เช่น AUDIO_SOURCE_FM_TUNER จะถูกละเว้น และได้รับอนุญาตให้บันทึกพร้อมกันพร้อมกับอินพุตปกติ (เช่น ไมโครโฟน) HwAudioSource ไม่ถือว่าเป็นส่วนหนึ่งของข้อจำกัดในการจับภาพพร้อมกัน

แอปที่ออกแบบมาเพื่อทำงานกับอุปกรณ์ AUDIO_DEVICE_IN_BUS หรือกับอุปกรณ์ AUDIO_DEVICE_IN_FM_TUNER รองจะต้องอาศัยการระบุอุปกรณ์เหล่านั้นอย่างชัดเจน และใช้ AudioRecord.setPreferredDevice() เพื่อเลี่ยงผ่านตรรกะการเลือกแหล่งที่มาเริ่มต้นของ Android