Android: Я хочу читать буферами с микрофона, так что я могу выполнять процесс на нем, Ниже мой кодAndroid: AudioRecord Код ошибки -20 при инициализации встроенного объекта AudioRecord
int sampleRateInHz = 8000;// 44100, 22050 and 11025
int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
//int bufferSize =11025 +
int bufferSize = AudioRecord.getMinBufferSize(sampleRateInHz,channelConfig, audioFormat);
short[] buffer = new short[bufferSize];
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRateInHz,channelConfig, audioFormat, bufferSize);
if(audioRecord.getState()== AudioRecord.STATE_INITIALIZED){
audioRecord.startRecording();
Log.e("recording", "before");
boolean flag = true;
while (flag) {
int bufferReadResult = audioRecord.read(buffer, 0, bufferSize);
System.out.println(buffer);
}
audioRecord.stop();
audioRecord.release();
}
Log.e("recording", "stopeed");
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
Я получаю следующее сообщение об ошибке каждый раз, когда Я пытаюсь проверить программу
06-04 00: 18: 17.222: E/AudioRecord-Java (488): [android.media.AudioRecord] Код ошибки -20 при инициализации собственного объекта AudioRecord.
Мой уровень api равен 7, а в api 7 нет CHANNEL_IN_MONO только CHANNEL_CONFIGURATION_MONO –
Я использовал api level 3 android platform 1.5, и проблема была у меня обновлена уровень api до уровня 7 api, который является платформой 2.1 и исправлен. Я также изменил с CHANNEL_CONFIGURATION_MONO на CHANNEL_IN_MONO. Я также заметил, что уровень api 3 в эмуляторе отсутствует для записи звука. спасибо за большую помощь. –