माइक्रोफ़ोन इनपुट

ऑडियो कैप्चर करते समय, ऑडियो एचएएल को एक 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 से सेट किया गया मान (ज़्यादा से ज़्यादा दो चैनल).

समवर्ती कैप्चर

Android फ़्रेमवर्क, Android 10 के बाद के वर्शन इनपुट को एक साथ कैप्चर किया जाता है, लेकिन उपयोगकर्ता की निजता की सुरक्षा के लिए पाबंदियां लगाई जाती हैं. इन पाबंदियों के तहत, AUDIO_SOURCE_FM_TUNER जैसे वर्चुअल सोर्स को अनदेखा किया जाता है. साथ ही, उन्हें ये काम करने की अनुमति दी जाती है किसी सामान्य इनपुट (जैसे कि माइक्रोफ़ोन) के साथ-साथ कैप्चर की जानी चाहिए. HwAudioSource को एक साथ कैप्चर करने की पाबंदियों का हिस्सा नहीं माना जाता.

ऐसे ऐप्लिकेशन जो AUDIO_DEVICE_IN_BUS डिवाइसों या सेकंडरी डिवाइसों के साथ काम करते हैं AUDIO_DEVICE_IN_FM_TUNER डिवाइसों को साफ़ तौर पर उनकी पहचान करने पर भरोसा करना चाहिए Android डिवाइस को बायपास करने के लिए, AudioRecord.setPreferredDevice() का इस्तेमाल कर रहा है डिफ़ॉल्ट सोर्स चुनने का लॉजिक.