我正在开展this sound recorder活动。我为活动添加了一个重启按钮以再次开始录制,但代码的问题是它覆盖了最后一个文件的新记录文件。我想编辑这部分代码。
outputFile = Environment.getExternalStorageDirectory().
getAbsolutePath() + "/Recording" + date + time + ".3gpp";
问题是,我是编码的菜鸟,我不知道如何解释日期和时间,我不知道它是否有效。
答案 0 :(得分:1)
像
这样的东西 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String fName = String.format ("myFile_%s.txt", sdf.format(new Date ()));
感谢@FabianGünter用
制作完整的解决方案SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
outputFile = Environment.getExternalStorageDirectory().
getAbsolutePath() + "/Recording" + sdf.format(new Date()) + ".3gpp";
答案 1 :(得分:0)
如果您只需要一个可以使用的唯一名称。
您可以用它来替换日期和时间。 getAbsolutePath()+“/ Recording”+ System.currentTimeMillis()+“。3gpp”;
它给出了自1970年1月1日以来的毫秒数。这通常是一个uid。并且肯定会创建独特的连续名称。
答案 2 :(得分:0)
使用此功能,它将返回带有日期和时间的唯一文件路径
var start, end;
start = new Date(2016, 11, 5);
end = new Date(2016, 11, 4);
console.log(start, end, start < end)
start = new Date(2016, 11, 3);
end = new Date(2016, 11, 4);
console.log(start, end, start < end)
答案 3 :(得分:0)
非常感谢我的朋友。但我自己找到了答案。 添加:
import java.util.Calendar;
然后添加:
Calendar cal = Calendar.getInstance();
int seconds = cal.get(Calendar.SECOND);
int minutes = cal.get(Calendar.MINUTE);
int hour = cal.get(Calendar.HOUR);
int date = cal.get(Calendar.DATE);
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
然后:
outputFile = Environment.getExternalStorageDirectory().
getAbsolutePath() + "/Recording" + (year) + "-" + (month) + "-" + (date) + "-" + (hour) + "-" + (minutes) + "-" + (seconds) + ".3gpp";
它为我工作。