Android 视频查看持续时间

Android 视频查看持续时间,android,android-videoview,android-seekbar,Android,Android Videoview,Android Seekbar,我正在使用videoview从URL播放视频。当我播放视频时,当前时间比视频的总持续时间多几秒 04-05 17:20:27.457 9342-9342/exoplayer.com.videoview V/总计:00:45 04-05 17:20:27.557 9342-9342/exoplayer.com.videoview V/CURRENT:00:46 public String stringForTime(long timeMs) { mFormatBuilder = new

我正在使用videoview从URL播放视频。当我播放视频时,当前时间比视频的总持续时间多几秒

04-05 17:20:27.457 9342-9342/exoplayer.com.videoview V/总计:00:45
04-05 17:20:27.557 9342-9342/exoplayer.com.videoview V/CURRENT:00:46

 public String stringForTime(long timeMs) {
    mFormatBuilder = new StringBuilder();
    mFormatter = new Formatter(mFormatBuilder, Locale.getDefault());
    long totalSeconds = timeMs / 1000;
    int seconds = (int) (totalSeconds % 60);
    int minutes = (int) ((totalSeconds / 60) % 60);
    int hours = (int) (totalSeconds / 3600);
    mFormatBuilder.setLength(0);
    if (hours > 0) {
        return mFormatter.format("%d:%02d:%02d", hours, minutes, seconds).toString();
    } else {
        return mFormatter.format("%02d:%02d", minutes, seconds).toString();
    }
}

这不是答案。我只是告诉你怎么做

使用类似以下内容:

public String milliSecondsToTimer(long milliseconds) {
    String finalTimerString = "";
    String secondsString = "";

    // Convert total duration into time
    int hours = (int) (milliseconds / (1000 * 60 * 60));
    int minutes = (int) (milliseconds % (1000 * 60 * 60)) / (1000 * 60);
    int seconds = (int) ((milliseconds % (1000 * 60 * 60)) % (1000 * 60) / 1000);
    // Add hours if there
    if (hours > 0) {
        finalTimerString = hours + ":";
    }

    // Prepending 0 to seconds if it is one digit
    if (seconds < 10) {
        secondsString = "0" + seconds;
    } else {
        secondsString = "" + seconds;
    }

    finalTimerString = finalTimerString + minutes + ":" + secondsString;

    // return timer string
    return finalTimerString;
}
公共字符串毫秒计时器(长毫秒){
字符串finalTimerString=“”;
字符串secondssString=“”;
//将总持续时间转换为时间
整数小时=(整数)(毫秒/(1000*60*60));
整数分钟=(整数)(毫秒%(1000*60*60))/(1000*60);
整数秒=(整数)((毫秒%(1000*60*60))%(1000*60)/1000);
//如果有,请加上小时数
如果(小时数>0){
finalTimerString=hours+“:”;
}
//如果是一位数字,则在0到秒之前加上前缀
如果(秒<10){
secondsString=“0”+秒;
}否则{
secondsString=“”+秒;
}
finalTimerString=finalTimerString+minutes+“:”+secondsString;
//返回计时器字符串
返回finalTimerString;
}
请点击以下链接:


这不是答案。我只是告诉你怎么做

使用类似以下内容:

public String milliSecondsToTimer(long milliseconds) {
    String finalTimerString = "";
    String secondsString = "";

    // Convert total duration into time
    int hours = (int) (milliseconds / (1000 * 60 * 60));
    int minutes = (int) (milliseconds % (1000 * 60 * 60)) / (1000 * 60);
    int seconds = (int) ((milliseconds % (1000 * 60 * 60)) % (1000 * 60) / 1000);
    // Add hours if there
    if (hours > 0) {
        finalTimerString = hours + ":";
    }

    // Prepending 0 to seconds if it is one digit
    if (seconds < 10) {
        secondsString = "0" + seconds;
    } else {
        secondsString = "" + seconds;
    }

    finalTimerString = finalTimerString + minutes + ":" + secondsString;

    // return timer string
    return finalTimerString;
}
公共字符串毫秒计时器(长毫秒){
字符串finalTimerString=“”;
字符串secondssString=“”;
//将总持续时间转换为时间
整数小时=(整数)(毫秒/(1000*60*60));
整数分钟=(整数)(毫秒%(1000*60*60))/(1000*60);
整数秒=(整数)((毫秒%(1000*60*60))%(1000*60)/1000);
//如果有,请加上小时数
如果(小时数>0){
finalTimerString=hours+“:”;
}
//如果是一位数字,则在0到秒之前加上前缀
如果(秒<10){
secondsString=“0”+秒;
}否则{
secondsString=“”+秒;
}
finalTimerString=finalTimerString+minutes+“:”+secondsString;
//返回计时器字符串
返回finalTimerString;
}
请点击以下链接:


我是用joda time完成的,可能有更好的方法,但我认为这比上面列出的解决方案更简洁

private String setTime(long elapsed) {
    final String PADDED_TIME_FORMAT = "00%s";
    final Period duration = new Period(elapsed);
    final String hours = String.format(PADDED_TIME_FORMAT, duration.getHours());
    final String minutes = String.format(PADDED_TIME_FORMAT, duration.getMinutes());
    final String seconds = String.format(PADDED_TIME_FORMAT, duration.getSeconds());
    return String.format("%s:%s:%s",
            hours.substring(hours.length() -2, hours.length()),
            minutes.substring(minutes.length() -2, minutes.length()),
            seconds.substring(seconds.length() -2, seconds.length()));
}

我使用了joda time,可能有更好的方法,但我认为这比上面列出的解决方案更简洁

private String setTime(long elapsed) {
    final String PADDED_TIME_FORMAT = "00%s";
    final Period duration = new Period(elapsed);
    final String hours = String.format(PADDED_TIME_FORMAT, duration.getHours());
    final String minutes = String.format(PADDED_TIME_FORMAT, duration.getMinutes());
    final String seconds = String.format(PADDED_TIME_FORMAT, duration.getSeconds());
    return String.format("%s:%s:%s",
            hours.substring(hours.length() -2, hours.length()),
            minutes.substring(minutes.length() -2, minutes.length()),
            seconds.substring(seconds.length() -2, seconds.length()));
}

最简单更好的解决方案。最简单更好的解决方案。