Đầu vào micrô

Khi ghi lại âm thanh, HAL âm thanh sẽ nhận được một lệnh gọi openInputStream bao gồm một đối số AudioSource để cho biết cách xử lý đầu vào micrô.

Nguồn VOICE_RECOGNITION dự kiến sẽ có một luồng micrô âm thanh nổi có hiệu ứng khử tiếng vang (nếu có) nhưng không có quy trình xử lý nào khác được áp dụng cho luồng này.

Đầu vào micrô đa kênh

Để ghi lại âm thanh từ một thiết bị có nhiều hơn 2 kênh (âm thanh nổi), hãy sử dụng mặt nạ chỉ mục kênh thay vì mặt nạ chỉ mục vị trí (chẳng hạn như CHANNEL_IN_LEFT). Ví dụ:

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);

Khi cả setChannelMasksetChannelIndexMask đều được đặt, AudioRecord chỉ sử dụng giá trị do setChannelMask đặt (tối đa là 2 kênh).

Chụp đồng thời

Kể từ Android 10, khung Android hỗ trợ tính năng Chụp đồng thời các dữ liệu đầu vào, nhưng có các hạn chế để bảo vệ quyền riêng tư của người dùng. Trong phạm vi những hạn chế này, các nguồn ảo như AUDIO_SOURCE_FM_TUNER sẽ bị bỏ qua và được phép ghi lại đồng thời cùng với một nguồn đầu vào thông thường (chẳng hạn như micrô). HwAudioSource không được xem là một phần của các quy định hạn chế về việc ghi hình đồng thời.

Các ứng dụng được thiết kế để hoạt động với các thiết bị AUDIO_DEVICE_IN_BUS hoặc với các thiết bị AUDIO_DEVICE_IN_FM_TUNER phụ phải dựa vào việc xác định rõ ràng những thiết bị đó và sử dụng AudioRecord.setPreferredDevice() để bỏ qua logic chọn nguồn mặc định của Android.