我是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根据模拟器安装,所以我不知道。

有帮助吗?

解决方案

添加 write_external_storage 许可授予AndroidManifest.xml。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top