בזמן הקלטת האודיו, מכשיר האודיו עם ה-HAL מקבל שיחת 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 10, מסגרת Android תומכת
קלט בו-זמנית של קלטים, אבל עם
הגבלות כדי להגן על פרטיות המשתמש. כחלק מההגבלות האלה,
המערכת מתעלמת ממקורות וירטואליים כמו AUDIO_SOURCE_FM_TUNER
, והם מורשים לבצע
יוקלט בו-זמנית עם קלט רגיל (כמו המיקרופון).
HwAudioSource
לא נחשבת לחלק מהגבלות הצילום בו-זמנית.
אפליקציות שנועדו לפעול עם מכשירי AUDIO_DEVICE_IN_BUS
או עם מכשירים משניים
AUDIO_DEVICE_IN_FM_TUNER
מכשירים חייבים להסתמך על זיהוי מפורש של האנשים האלה
ומשתמשים ב-AudioRecord.setPreferredDevice()
כדי לעקוף את Android
לוגיקת ברירת המחדל לבחירת מקור.