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