MediaRecorder类记录音频的问题 - prepare()给出异常 - 权限被拒绝

ara*_*kn0 4 android exception audio-recording permission-denied mediarecorder

我是Android开发的新手,我有下一个问题/问题.

我正在玩MediaRecorder类来录制麦克风中的音频.我正在按照官方网站上指示的步骤操作:http://developer.android.com/reference/android/media/MediaRecorder.html

所以我有一个初始化和配置MediaRecorder对象的方法,以便开始录制.在这里你有代码:


        //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());
        }
Run Code Online (Sandbox Code Playgroud)

当我在模拟器中执行此代码时,感谢logcat,我可以看到方法prepare()在调用时给出异常:


java.io.FileNotFoundException: /sdcard/test.3gp (Permission denied)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样.由于异常消息,我通过在xml中添加以下行来在清单中授予访问存储的权限:


<uses-permission android:name="android.permission.STORAGE" />
Run Code Online (Sandbox Code Playgroud)

但这并没有解决任何问题,我仍然会一直得到同样的例外.SDCard是根据模拟器安装的,所以我不知道.

JRL*_*JRL 8

WRITE_EXTERNAL_STORAGE权限添加到AndroidManifest.xml.