android - MediaRecorder.prepare() 异常 - 没有这样的文件或目录

标签 android exception audio record

我正在尝试录制音频,当调试到达 .prepare() 时出现异常异常

这是我的Record() 方法。

private void Grabar(View v) {
    mediaRecorder = new MediaRecorder();
    Date today = Calendar.getInstance().getTime(); 
    String nombrefichero =  String.valueOf(today.getDate()) + "-"
            + String.valueOf(today.getMonth() + 1) + "-"
            + String.valueOf(today.getYear() + 1900) + "_"
            + String.valueOf(today.getHours()) + "."
            + String.valueOf(today.getMinutes())+"."+String.valueOf(today.getSeconds()) +".3gp";

    mediaRecorder.setOutputFile(VarGlobales.Ruta+"/"+VarGlobales.Trabajo+"/Audio/"+nombrefichero);
    // VarGlobales.Ruta -> Environment.getExternalStorageDirectory().getAbsolutePath();
    // VarGlobales.Trabajo -> 001
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

    try {
        mediaRecorder.prepare();
        mediaRecorder.start();
        Toast.makeText(contexto, "Grabando...", Toast.LENGTH_SHORT).show();
    } catch (IOException e)
    {
        Toast.makeText(contexto, "Fallo en la grabación", Toast.LENGTH_SHORT).show();
    }       
}

AndroidManifest.xml 具有RECORD_AUDIOWRITE_EXTERNAL_STORAGE 权限。

异常说:

java.io.FileNotFoundException: /storage/sdcard0/001/Audio/25-7-2014_8.53.6.3gp:
open failed: ENOENT (No such file or directory)

异常表明该文件不存在。难道我现在正在创建它吗?

我做错了什么?

最佳答案

请阅读文档。它说 mediaRecorder.setOutputFile() 应该在 setOutputFormat() 之后调用 之前 prepare() .

//在sdcard中创建目录:

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyFolder/";
File dir = new File(path);
if(!dir.exists())
dir.mkdirs();
String myfile = path + "filename" + ".mp4";

然后将其指定为您的输出文件。

setOutputFile(myfile);

关于android - MediaRecorder.prepare() 异常 - 没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24951012/

相关文章:

java - 从 ViewPager fragment 刷新 Activity

java - 从模糊的堆栈跟踪中查找异常原因

ElasticsearchException 绑定(bind)服务失败错误

python - 为什么随后的FFT产生的频率集与生成时使用的频率集不同?

javascript - 如何在不扩展的情况下播放音频

android - Rhodes:无法检测到 NDK 工具链路径(损坏的 NDK 安装?)

java - Google Play 服务 9.2.0 (Admob) 的 NoClassDefFoundError

java - Google map API 自行停止工作

java - 存在可选的长参数,但不能转换为空值

c++ - JUCE 断言失败 - iOS 上的 IIRFilter