Ses kaydederken Ses HAL'si, sesin duyulduğu bir openInputStream
çağrısı alır.
mikrofon girişinin nasıl olması gerektiğini belirten bir AudioSource
bağımsız değişkeni içerir
işlendi.
VOICE_RECOGNITION
kaynağı, özellikli bir stereo mikrofon akışı bekliyor
yankı giderme etkisi (varsa) gösterilir ancak buna herhangi bir işlem uygulanmaz.
Çok kanallı mikrofon girişi
İkiden fazla kanalı (stereo) olan bir cihazdan ses yakalamak için bir
kanal dizini maskesi (CHANNEL_IN_LEFT
gibi) kullanmanızı öneririz.
Örnek:
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);
Hem setChannelMask
hem de setChannelIndexMask
ayarlandığında AudioRecord
yalnızca setChannelMask
tarafından ayarlanan değer (en fazla iki kanal).
Eş zamanlı yakalama
Android 10 sürümünden itibaren Android çerçevesi
Girişlerin eş zamanlı olarak yakalanması ancak
kısıtlamalara tabi tutulmasıdır. Bu kısıtlamaların bir parçası olarak
AUDIO_SOURCE_FM_TUNER
gibi sanal kaynaklar yoksayılır ve
görüntü, normal bir girişle (mikrofon gibi) eşzamanlı olarak yakalanabilir.
HwAudioSource
, eşzamanlı yakalama kısıtlamalarının bir parçası olarak kabul edilmez.
AUDIO_DEVICE_IN_BUS
cihazla veya ikincil cihazlarla çalışacak şekilde tasarlanmış uygulamalar
AUDIO_DEVICE_IN_FM_TUNER
cihaz, bunların açıkça tanımlanmasına dayanmalıdır
cihazlarda ve Android'i atlamak için AudioRecord.setPreferredDevice()
kullanılarak
varsayılan kaynak seçim mantığı.