Почему AudioRecord.getMinBufferSize возвращает ERROR_BAD_VALUE (-2)?

Я тестирую это на Samsung Galaxy S i9000.

int sampleRate = 44100;
int bufferSize = AudioRecord.getMinBufferSize(sampleRate, 
    AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_8BIT);

Он возвращает -2 ERROR_BAD_VALUE .

Исходная частота дискретизации составляет 44100 Гц, как было возвращено

AudioTrack .getNativeOutputSampleRate (AudioManager.STREAM_SYSTEM).

Я попытался установить sampleRate на 1000, 8000, 22100 и 44100. Я также попытался изменить AudioFormat.CHANNEL_IN_MONO на AudioFormat.CHANNEL_CON]. Я также пробовал STEREO (оба IN_STEREO и CONFIGURATION_STEREO ). Я также пробовал 16-битную кодировку вместо 8-битной.

Обновление: в моем манифесте разрешено AUDIO_RECORD .

В результате я получаю -2. Почему это происходит?

11
задан Octavian A. Damiean 24 January 2011 в 12:51
поделиться