Problemas con la fuente de audio de configuración de clase MediaRecorder - setAudioSource () - parámetro no compatible

Soy nuevo en el desarrollo de Android y tengo la siguiente pregunta / problema.

Estoy jugando con la clase MediaRecorder para grabar solo el audio del micrófono. Estoy siguiendo los pasos indicados en el sitio oficial:http://developer.android.com/reference/android/media/MediaRecorder.html

Entonces tengo un método que inicializa y configura el objeto MediaRecorder para comenzar a grabar. Aquí tienes el código:


        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();
        }

Cuando ejecuto este código en el simulador, gracias a logcat, puedo ver que el método setAudioSource (MediaRecorder.AudioSource.MIC) da el siguiente error (con la etiqueta audio_ipunt) cuando se llama:


ERROR/audio_input(34): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
ERROR/audio_input(34): VerifyAndSetParameter failed

Y luego, cuando se llama al método prepare (), obtengo el otro error nuevamente:


ERROR/PVOMXEncNode(34): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle 

Si comienzo a grabar llamando al método start () ... recibo muchos mensajes que dicen:


AudioFlinger(34):RecordThread: buffer overflow

Luego ... después de parar y soltar ... puedo ver que se ha creado un archivo, pero no parece que haya sido bien grabado. De todos modos, si intento esto en un dispositivo real, puedo grabar sin problemas, pero NO PUEDO reproducir lo que acabo de grabar.

Supongo que la clave está en estos errores que he mencionado antes. ¿Cómo puedo arreglarlos? ¿Alguna sugerencia o ayuda?

Respuestas a la pregunta(3)

Su respuesta a la pregunta