Mikrofon girişi

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ığı.