我正在获取音频文件的持续时间,将其转换为int,然后将int转换为字符串,然后将字符串转换为类似00:32的字符串。转换后的字符串是正确的,但是将该字符串转换为数据
是一个问题这是我的代码:
File file = new File(Environment.getExternalStorageDirectory()+"/MyImages/.audio1.wav");
MediaPlayer mp = new MediaPlayer();
FileInputStream fs = null;
FileDescriptor fd = null;
try {
fs = new FileInputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fd = fs.getFD();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.setDataSource(fd);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int length = mp.getDuration()/1000;
mp.release();
String audiotime = String.valueOf(length);
SimpleDateFormat sdf = new SimpleDateFormat("mmss");
try {
Date d = sdf.parse(audiotime);
textView1.setText(audiotime);
} catch (ParseException ex) {
}
答案 0 :(得分:0)
有两件事,最重要的是,您使用原始字符串作为TextView
的文字。您应该执行textView1.setText(d.toString());
其次,你应该使用" mm:ss"作为您的格式,而不是" mmss"。
请注意,您还可以使用format
的{{1}}功能。这将返回SimpleDateFormat
,这可能更合适,因为您只需要StringBuffer
表示