Я новичок в разработке Android, и у меня есть следующий вопрос/проблема.
Я играю с классом MediaRecorder, чтобы записывать только звук с микрофона. Я следую шагам, указанным на официальном сайте: http://developer.android.com/reference/android/media/MediaRecorder.html
Итак, у меня есть метод, который инициализирует и настраивает объект MediaRecorder, чтобы начать запись. Здесь у вас есть код:
this.mr = new MediaRecorder();
this.mr.setAudioSource(MediaRecorder.AudioSource.MIC);
this.mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
this.mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
this.mr.setOutputFile(this.path + this.fileName);
try {
this.mr.prepare();
} catch (IllegalStateException e) {
Log.d("Syso", e.toString());
e.printStackTrace();
} catch (IOException e) {
Log.d("Syso", e.toString());
e.printStackTrace();
}
Когда я выполняю этот код в симуляторе, благодаря logcat я вижу, что метод setAudioSource(MediaRecorder.AudioSource.MIC) при вызове выдает следующую ошибку (с тегом audio_ipunt):
ERROR/audio_input(34): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
ERROR/audio_input(34): VerifyAndSetParameter failed
И затем, когда вызывается метод prepare(), я снова получаю другую ошибку:
ERROR/PVOMXEncNode(34): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle
Если я начну запись, вызвав метод start()..., я получу много сообщений, говорящих:
AudioFlinger(34):RecordThread: buffer overflow
Затем... после остановки и отпускания... Я вижу, что файл был создан, но не похоже, чтобы он был хорошо записан. В любом случае, если я попробую это на реальном устройстве, я смогу записать без проблем, но я НЕ МОГУ воспроизвести то, что я только что записал.
Я предполагаю, что ключ находится в этих ошибках, которые я упоминал ранее. Как я могу их исправить? Любое предложение или помощь ??