这个问题很奇怪。问题是,每当我尝试使用时间戳记的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"


使用当前时间创建一个字符串,该字符串在您的目录中不存在。

您应该传递确切的文件路径。

08-06 13:07