2016-04-05 15 views
0

Ich verwende Videoview, um Videos von URLs abzuspielen. Wenn ich Video abspiele, beträgt die aktuelle Zeit einige Sekunden mehr als die Gesamtdauer des Videos.VideoView-Dauer

04-05 17:20:27.457 9342-9342/exoplayer.com.videoview V/TOTAL: 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(); 
    } 
} 

Antwort

1

Dies ist keine Antwort. Ich gebe dir nur eine Idee, wie du das machen kannst.

Verwendung so etwas wie dieses:

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; 
} 

diesen Links folgen:

How to Display time of videoview in android

how to get total length of video in video view in android

+0

ich benutze bereits diese Methoden ... nichts hilft aus –

0

Ich habe es joda Zeit verwendet wird, gibt es wahrscheinlich einen besseren Weg, aber ich denke, das ist besser als die oben aufgelistete Lösung

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())); 
}