Hi
I want to display player position and player duration in simple date format. that is. 00:00:01/00:00:06
. The first part is current position of the player and the second part is the duration.
I have used SimpleDateFormat
to try display the duration and position in this format, but it is showing me the output as 05:30:00/05:30:06
.
Here is the code I am using:
time1 = new SimpleDateFormat("HH:mm:ss");
currentTime.setText("" + time1.format(player.getCurrentPosition());
How do I print out the position and duration correctly? (It is displaying hours/minutes that should not be there).
Kindly help me out, Swathi Daruri.
DateFormat
works for dates, not for time intervals. So if you get a position of 1 second, the DateFormat interprets this as meaning that the date/time is 1 second after the beginning the calendar (which is January 1st, 1970).
You'd need to do something like
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();
}
And then do something like
totalTime.setText(getTimeString(duration));
currentTime.setText(getTimeString(position));
just try this one
fun getDurationString(durationMs: Long, negativePrefix: Boolean): String {
val hours = TimeUnit.MILLISECONDS.toHours(durationMs)
val minutes = TimeUnit.MILLISECONDS.toMinutes(durationMs)
val seconds = TimeUnit.MILLISECONDS.toSeconds(durationMs)
return if (hours > 0) {
format(
Locale.getDefault(), "%s%02d:%02d:%02d",
if (negativePrefix) "- " else "",
hours,
minutes - TimeUnit.HOURS.toMinutes(hours),
seconds - TimeUnit.MINUTES.toSeconds(minutes)
)
} else format(
Locale.getDefault(), "%s%02d:%02d",
if (negativePrefix) "- " else "",
minutes,
seconds - TimeUnit.MINUTES.toSeconds(minutes)
)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With