我正在尝试录制音频,当调试到达 .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_AUDIO
和WRITE_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/