Pregunta

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

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

Por lo tanto, tengo un método que inicializa y configura el objeto MediareCorder para comenzar a grabar. Aquí tienes el código:


        //initializes audio recorder
        MediaRecorder mrecorder = new MediaRecorder();
        //configure the input sources
        mrecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        //set the output format
        mrecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        //set the audio encoding
        mrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        //specify the output file
        mrecorder.setOutputFile("/sdcard/test.3gp");
        //prepare for recording
        try {
            mrecorder.prepare();
        } catch (IllegalStateException e) { 
            e.printStackTrace();
            Log.d("Syso". e.toString());
        } catch (IOException e) { 
            e.printStackTrace();
            Log.d("Syso". e.toString());
        }

Cuando ejecuto este código en el simulador, gracias a LogCat, puedo ver que el método prepare () da una excepción cuando se llama:


java.io.FileNotFoundException: /sdcard/test.3gp (Permission denied)

Y no tengo idea de por qué está sucediendo esto. Debido al mensaje de la excepción, he dado permisos en el manifiesto para acceder al almacenamiento agregando la siguiente línea al XML:


<uses-permission android:name="android.permission.STORAGE" />

Pero esto no soluciona nada y todavía obtengo la misma excepción todo el tiempo. La tarjeta SD está montada de acuerdo con el emulador, por lo que no tengo ni idea.

¿Fue útil?

Solución

Añade el Write_external_storage Permiso a AndroidManifest.xml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top