4

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

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


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

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


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

但这并不能解决任何问题,我仍然总是遇到同样的异常。SDCard是根据模拟器安装的,所以我不知道。

4

1 回答 1

8

WRITE_EXTERNAL_STORAGE权限添加到 AndroidManifest.xml。

于 2010-06-04T15:36:31.470 回答