Saat merekam audio, HAL Audio menerima panggilan openInputStream
yang
menyertakan argumen AudioSource
untuk menunjukkan cara input mikrofon seharusnya
diproses.
Sumber VOICE_RECOGNITION
mengharapkan streaming mikrofon stereo yang memiliki
efek pengurang gema (jika tersedia), tetapi tidak ada pemrosesan lain yang diterapkan.
Input mikrofon multisaluran
Untuk merekam audio dari perangkat yang memiliki lebih dari dua saluran (stereo), gunakan
mask indeks saluran, bukan mask indeks posisi (seperti CHANNEL_IN_LEFT
).
Contoh:
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);
Jika setChannelMask
dan setChannelIndexMask
ditetapkan, AudioRecord
akan menggunakan
hanya nilai yang ditetapkan oleh setChannelMask
(maksimum dua saluran).
Pengambilan foto serentak
Mulai Android 10, framework Android mendukung
Pengambilan input serentak, tetapi dengan
pembatasan untuk melindungi privasi pengguna. Sebagai bagian dari pembatasan tersebut,
sumber virtual seperti AUDIO_SOURCE_FM_TUNER
akan diabaikan, dan diizinkan untuk
direkam secara bersamaan dengan input biasa (seperti mikrofon).
HwAudioSource
tidak dianggap sebagai bagian dari pembatasan pengambilan serentak.
Aplikasi yang didesain agar berfungsi dengan AUDIO_DEVICE_IN_BUS
perangkat atau dengan
AUDIO_DEVICE_IN_FM_TUNER
perangkat harus secara eksplisit mengidentifikasi
perangkat dan menggunakan AudioRecord.setPreferredDevice()
untuk mengabaikan Android
logika pemilihan sumber default.