Problèmes avec la classe MediaRecorder à enregistrer des données audio - préparer () donne une exception - Autorisation refusée

StackOverflow https://stackoverflow.com/questions/2970876

Question

Je suis nouveau dans le développement Android et j'ai la question suivante / problème.

Je suis jouer avec la classe MediaRecorder pour enregistrer tout audio du microphone. Je suis en suivant les étapes indiquées dans le site officiel: http: // développeur. android.com/reference/android/media/MediaRecorder.html

J'ai donc une méthode qui initialise et configurer l'objet MediaRecorder afin de commencer l'enregistrement. Ici vous avez le code:


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

Quand j'exécute ce code dans le simulateur, grâce à logcat, je peux voir que la méthode prepare () donne une exception lorsque l'on appelle:


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

Je ne sais pas pourquoi cela se passe. En raison du message de l'exception, j'ai donné des autorisations dans le manifeste d'accès au stockage en ajoutant la ligne suivante au xml:


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

Mais cela ne résout rien et je reçois toujours la même exception tout le temps. Le SDCard est monté selon l'émulateur, donc je n'ai aucune idée.

Était-ce utile?

La solution

Ajoutez WRITE_EXTERNAL_STORAGE la permission de AndroidManifest.xml.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top