0

Here is my code:

SimpleDateFormat dateFormat=new SimpleDateFormat("mm:ss");
int currentPosition=mediaPlayer.getCurrentPosition();
int duration=mediaPlayer.getDuration();

leftTime.setText(dateFormat.format(new Date(currentPosition)));
rightTime.setText(dateFormat.format(new Date(duration-currentPosition)));
}

Output showing for time duration up to 60sec 5:30:20 Anyone?

AskNilesh
  • 58,437
  • 15
  • 99
  • 129
RahulSingh
  • 11
  • 6

1 Answers1

0

You are handling a time duration in milliseconds as a date, what is incorrect.

As an alternative you can use the following function, which receives the time as Long as returns a string in the format "MM:SS":

public String toTimestamp(Long time) {
    Long minutes = time / 60000;
    Float seconds = time % 3600000 % 60000 / 1000.0f;
    DecimalFormatSymbols localeSpecificChars = DecimalFormatSymbols(Locale.US);
    String secondsString = DecimalFormat("00", localeSpecificChars).format(Math.floor(seconds));
    return String.format(Locale.US, "%02d:%s", minutes, secondsString);
}
Mateus Zitelli
  • 992
  • 1
  • 11
  • 22