找不到文件 - 声音文件保存在哪里?

时间:2011-04-07 01:43:32

标签: java android

我正在关注示例应用代码 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();
}

2 个答案:

答案 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 ...

  • 检查日志