如何正确显示MediaPlayer的位置/持续时间?

use*_*237 10 formatting time android media-player

嗨我想以简单的日期格式显示玩家位置和玩家持续时间.那是.00:00:01/00:00:06.第一部分是玩家的当前位置,第二部分是持续时间.我曾经SimpleDateFormat尝试以这种格式显示持续时间和位置,但它显示输出为05:30:00/05:30:06.

这是我正在使用的代码:

time1 = new SimpleDateFormat("HH:mm:ss");
currentTime.setText("" + time1.format(player.getCurrentPosition());
Run Code Online (Sandbox Code Playgroud)

如何正确打印位置和持续时间?(它显示的小时/分钟不应该在那里).

请帮助我,Swathi Daruri.

Jos*_*arl 26

DateFormat适用于日期,而不适用于时间间隔.因此,如果您获得1秒的位置,则DateFormat将其解释为日历/时间是在日历开始之后的1秒(即1970年1月1日).

你需要做类似的事情

private String getTimeString(long millis) {
    StringBuffer buf = new StringBuffer();

    int hours = (int) (millis / (1000 * 60 * 60));
    int minutes = (int) ((millis % (1000 * 60 * 60)) / (1000 * 60));
    int seconds = (int) (((millis % (1000 * 60 * 60)) % (1000 * 60)) / 1000);

    buf
        .append(String.format("%02d", hours))
        .append(":")
        .append(String.format("%02d", minutes))
        .append(":")
        .append(String.format("%02d", seconds));

    return buf.toString();
}
Run Code Online (Sandbox Code Playgroud)

然后做一些类似的事情

totalTime.setText(getTimeString(duration));
currentTime.setText(getTimeString(position));
Run Code Online (Sandbox Code Playgroud)

  • 你需要转换整数`int hours =(int)(millis /(1000*60*60));` (2认同)