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

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

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

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

หากต้องการบันทึกเสียงจากอุปกรณ์ที่มีมากกว่า 2 ช่อง (สเตอริโอ) ให้ใช้มาสก์ดัชนีช่องแทนมาสก์ดัชนีตำแหน่ง (เช่น 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