使用 Mediaplayer 播放音频文件。
一切正常,但需要在 TextView 中更新音频的播放时间。
textview.setText(mediaplayer.getCurrentPosition()/100000.0).toString();
这给出了 double 值,但如果结束时间超过一分钟并且耗时为 1 分钟,则它显示 0:60... 但它应该为 1:00...
有没有其他方法可以根据搜索栏进度显示耗时?
谢谢。
最佳答案
这有效-从另一篇文章中获取的答案: How do I correctly display the position/duration of a MediaPlayer?
DateFormat 适用于日期,不适用于时间间隔。因此,如果您获得 1 秒的位置,数据格式会将其解释为日期/时间是日历开始后 1 秒。
private String getTimeString(long millis) {
StringBuffer buf = new StringBuffer();
int hours = millis / (1000*60*60);
int minutes = ( millis % (1000*60*60) ) / (1000*60);
int seconds = ( ( millis % (1000*60*60) ) % (1000*60) ) / 1000;
buf
.append(String.format("%02d", hours))
.append(":")
.append(String.format("%02d", minutes))
.append(":")
.append(tring.format("%02d", seconds));
return buf.toString();
}
然后做类似的事情
totalTime.setText(getTimeString(duration));
currentTime.setText(getTimeString(position));
关于java - Android Mediaplayer - 基于seekbar进度更新textview中音频播放时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5418644/