Problemas con la clase MediareCorder para grabar audio - preparar () da una excepción - permiso denegado
-
24-10-2019 - |
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.
Solución
Añade el Write_external_storage Permiso a AndroidManifest.xml.