Я создаю приложение для Android, которое прослушивает телефонный звонок. Проблема в том, что инициализация терпит неудачу.Ошибка инициализации Android AudioRecord
Мой журнал:
E/AudioRecord﹕ Could not get audio input for record source 3
E/AudioRecord-JNI﹕ Error creating AudioRecord instance: initialization check failed.
E/android.media.AudioRecord﹕ Error code -20 when initializing native AudioRecord object.
Мой код:
public AudioRecord recorder;
private int sampleRate = 16000;
private int channelConfig = AudioFormat.CHANNEL_IN_MONO;
private int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);
recorder = new AudioRecord(MediaRecorder.AudioSource.VOICE_DOWNLINK, sampleRate, channelConfig, audioFormat, minBufSize * 10);
recorder.startRecording();
EDIT: Я хочу только DOWNLINK
Попробуйте использовать другие конфигурации (например 8000 Гц вместо 16000 Гц). Вы также можете попробовать использовать VOICE_CALL в качестве источника звука вместо 'VOICE_DOWNLINK'. Это также даст вам восходящую линию связи, но возможно, что устройство, которое вы тестируете, просто не поддерживает запись только нисходящей линии связи, поскольку запись голосовых вызовов является специфичной для платформы. – Michael