这个问题很奇怪。问题是,每当我尝试使用时间戳记的String命名文件时,setDataSource方法均无法给出IOException,但是如果我给出的名称(如包含诸如“ Hello.m4a”之类的字母)的名称,则它将正常工作。
以下代码给出了错误:
java.io.IOException:setDataSource失败。
outputFile =Environment.getExternalStorageDirectory()+"/Notes/Audio/AUD_";
private String getTimeStamp() {
Calendar calendar = Calendar.getInstance();
return new SimpleDateFormat("ddMMyyyyHHmmss",Locale.ENGLISH).format(calendar.getTimeInMillis())+".m4a";
}
mediaPlayer.setDataSource(outputFile+getTimeStamp());
mediaPlayer.prepare();
以下代码可以正常工作
outputFile =Environment.getExternalStorageDirectory()+"/Notes/Audio/AUD_";
private String getTimeStamp() {
return "hello.m4a"
}
mediaPlayer.setDataSource(outputFile+getTimeStamp());
mediaPlayer.prepare();
我想用时间戳命名文件,以轻松地构造文件。
最佳答案
setDataSource(String path)
设置要使用的数据源(文件路径)。
文件的路径不能为空。
否则会出现错误-在您的情况下为IOException
。
另外,您正在尝试访问不存在的文件。表达方式
SimpleDateFormat("ddMMyyyyHHmmss",Locale.ENGLISH).format(calendar.getTimeInMillis())+".m4a"
使用当前时间创建一个字符串,该字符串在您的目录中不存在。
您应该传递确切的文件路径。