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