我正在关注示例应用代码 http://developer.android.com/guide/topics/media/index.html
每当我尝试运行开始录制音频的代码时,都无法说找不到该文件。我正在使用设置为Android 2.1的模拟器运行此功能。我真的想找出答案:
1)如果文件不存在,代码是否应该创建? 2)它在哪里?单步执行代码说它位于“/sdcard/recordertest.3gp”。我似乎无法在任何地方找到该目录,因此这也可能是问题。
请帮忙!!!感谢。
适用的代码如下:
public RecorderTest() {
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName += "/recordertest.3gp";
}
private void startRecording() {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
}
答案 0 :(得分:0)
确保你有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
清单中的。
答案 1 :(得分:0)
需要注意的一些事项:
myFile
对象供以后测试。)// This avoids assumptions on what the pathname separator is
File dir = Environment.getExternalStorageDirectory();
File myFile = new File(dir, "recordertest.3gp");
mFileName = myFile.getAbsolutePath();
// ... and write the pathname to your log so that
// you can confirm it is what you expect
检查您的应用程序是否有权创建/写入该路径的文件。
检查您的应用程序是否实际超出了应该创建该文件的代码点。
应用程序超过该点后,使用File.exists()
(在myFile
对象上)检查文件是否已创建。
使用logcat
...