Почему я получаю IllegalArgumentException: неподдерживаемая конфигурация канала?

Я использую AudioRecord для сбора аудиоданных с разъема для наушников на Android, например, так:

int frequency = 44100;
int channelConfiguration = AudioFormat.CHANNEL_OUT_MONO;
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;

int bufferSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration, audioEncoding);
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, channelConfiguration, audioEncoding, bufferSize);
audioRecord.startRecording();

Тем не менее, я получаю сообщение об ошибке

java.lang.IllegalArgumentException: Unsupported channel configuration.

Я не нашел ничего полезного в Интернете, поэтому мне было интересно, если у кого-то еще была эта проблема.

3 ответа

Решение

Я не знаю, имел ли это в виду CaseyB, но я изменил AudioFormat.CHANNEL_OUT_MONO на AudioFormat.CHANNEL_IN_MONO. Это заставило ошибку исчезнуть.

когда вы используете запись, AudioFormat.CHANNEL_IN_MONO. когда вы используете воспроизведение, AudioFormat.CHANNEL_OUT_MONO.

ИзменятьAudioFormat.CHANNEL_OUT_MONOкAudioFormat.CHANNEL_IN_FRONT

Другие вопросы по тегам