首页 > 解决方案 > 如何获得媒体播放器持续时间的正确持续时间格式?

问题描述

我正在尝试以这种格式 00:00:00 从正在播放的媒体播放器中获取持续时间小时、分钟和秒。这是我到目前为止所拥有的。我几乎拥有它,但它不是100%。

 public String convertDurationMillis(Integer getDurationInMillis){

    int getDurationMillis = getDurationInMillis

    String convertHours = String.format("%02d", TimeUnit.MILLISECONDS.toHours(getDurationMillis));
    String convertMinutes = String.format("%02d", TimeUnit.MILLISECONDS.toMinutes(getDurationMillis));
    String convertSeconds = String.format("%02d", TimeUnit.MILLISECONDS.toSeconds(getDurationMillis) -
            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(getDurationMillis)));

    String getDuration = convertHours + ":" + convertMinutes + ":" + convertSeconds;

    return getDuration;

}

这是我的文本视图

myTV.setText(convertDurationMillis(mediaPlayer.getDuration());

只要音频持续时间少于一小时,它就可以正常工作。如果音频持续时间等于或超过一个小时,这就是我的结果... 02:149:51。我该如何纠正?提前致谢!

标签: javaandroid

解决方案


没关系,我终于明白了!这是答案...

    public String convertDurationMillis(Integer getDurationInMillis){
    int getDurationMillis = getDurationInMillis;

    String convertHours = String.format("%02d", TimeUnit.MILLISECONDS.toHours(getDurationMillis)); 
    String convertMinutes = String.format("%02d", TimeUnit.MILLISECONDS.toMinutes(getDurationMillis) -
            TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(getDurationMillis))); //I needed to add this part.
    String convertSeconds = String.format("%02d", TimeUnit.MILLISECONDS.toSeconds(getDurationMillis) -
            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(getDurationMillis)));


    String getDuration = convertHours + ":" + convertMinutes + ":" + convertSeconds;

    return getDuration;

}

感谢大家!


推荐阅读