קלט המיקרופון

בזמן הקלטת האודיו, מכשיר האודיו עם ה-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 לוגיקת ברירת המחדל לבחירת מקור.