int duration = mediaPlayer.getDuration();
textView = (TextView) findViewById(R.id.tvduration); textView.setText(duration);
来自MediaPlayer:
如果没有可用的持续时间,则以毫秒为单位(用于 例如,如果流式传输含量(,则返回-1。
这就是为什么您将从 getDuration()
中获得毫秒的持续时间。
您可以使用它将MediaPlayer
的时间作为字符串:
int duration = mediaPlayer.getDuration();
String time = String.format("%02d min, %02d sec",
TimeUnit.MILLISECONDS.toMinutes(duration),
TimeUnit.MILLISECONDS.toSeconds(duration) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration))
);
,然后在您的问题中写下:
TextView textView = (TextView) findViewById(R.id.tvduration);
textView.setText(time);
public static 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 + ":";
}
// Pre appending 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;
}
它已经3岁了,但是没有人做出正确的回应,然后我会回复
public String format(long millis) {
long allSeconds = millis / 1000;
int allMinutes;
byte seconds, minutes, hours;
if (allSeconds >= 60) {
allMinutes = (int) (allSeconds / 60);
seconds = (byte) (allSeconds % 60);
if (allMinutes >= 60) {
hours = (byte) (allMinutes / 60);
minutes = (byte) (allMinutes % 60);
return String.format(Locale.US, "%d:%d:" + formatSeconds(seconds), hours, minutes, seconds);
} else
return String.format(Locale.US, "%d:" + formatSeconds(seconds), allMinutes, seconds);
} else
return String.format(Locale.US, "0:" + formatSeconds((byte) allSeconds), allSeconds);
}
public String formatSeconds(byte seconds) {
String secondsFormatted;
if (seconds < 10) secondsFormatted = "0%d";
else secondsFormatted = "%d";
return secondsFormatted;
}
millis/1000将millis转换为秒。示例:
allSeconds = 68950 / 1000 = 68 seconds
如果AllSeconds大于60,我们将使用以下几秒钟将几分钟分开,然后使用以下方式将Allseconds = 68分钟转换为:
minutes = allSeconds / 60 = 1 left 8
剩下的数字将是秒
seconds = allSeconds % 60 = 8
方法格式秒(字节秒(添加零是否小于10。
最终将是: 1:08
为什么字节?长期表现不佳,然后更好地使用字节来进行更长的操作。