Проблемы с классом MedieAcroder для записи Audio - Prepare () дает исключение - разрешение отказано

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

Вопрос

Я новичок в разработке Android, и у меня есть следующий вопрос/проблема.

Я играю с классом MediareCorder, чтобы записать только звук из микрофона. Я выполняю шаги, указанные на официальном сайте: http://developer.android.com/reference/android/media/mediarecorder.html

Таким образом, у меня есть метод, который инициализирует и настраивает объект MedieareCorder, чтобы начать запись. Здесь у вас есть код:


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

Когда я выполняю этот код в симуляторе, благодаря LogCat, я вижу, что метод Prepare () дает исключение при вызове:


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

И я понятия не имею, почему это происходит. Из -за сообщения исключения я дал разрешения в манифесте для доступа к хранилищу, добавив следующую строку в XML:


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

Но это ничего не исправляет, и я все еще получаю одно и то же исключение все время. SDCARD монтируется в соответствии с эмулятором, поэтому я понятия не имею.

Это было полезно?

Решение

Добавить Write_external_storage разрешение на AndroidManifest.xml.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top