如何使用forme“hh:mm:ss”在TextView中显示歌曲的当前时间?
Runnable run = new Runnable() {
@Override
public void run() {
seekUpdation();
compteurCurrentTime = mediaPlayer.getCurrentPosition() / 1000;
showTimeCurrent();
}
};
public void seekUpdation() {
seekbar.setProgress(mediaPlayer.getCurrentPosition());
seekHandler.postDelayed(run, 1000);
}
private void showTimeCurrent() {
//display current time of song in TextView with forme "hh:mm:ss"
}
答案 0 :(得分:8)
试试这个Handler
:
private Runnable mUpdateTimeTask = new Runnable() {
@Override
public void run() {
long totalDuration = MediaAdapter.getMediaPlayer().getDuration();
long currentDuration = MediaAdapter.getMediaPlayer()
.getCurrentPosition();
// Displaying Total Duration time
songTotalDurationLabel.setText(""
+ utils.milliSecondsToTimer(totalDuration));
// Displaying time completed playing
songCurrentDurationLabel.setText(""
+ utils.milliSecondsToTimer(currentDuration));
// Updating progress bar
int progress = (utils.getProgressPercentage(currentDuration,
totalDuration));
// Log.d("Progress", ""+progress);
songProgressBar.setProgress(progress);
// Running this thread after 100 milliseconds
mHandler.postDelayed(this, 100);
}
};
上述处理程序中实现的所有方法:
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;
}
而另一个是
public int getProgressPercentage(long currentDuration, long totalDuration){
Double percentage = (double) 0;
long currentSeconds = (int) (currentDuration / 1000);
long totalSeconds = (int) (totalDuration / 1000);
// calculating percentage
percentage =(((double)currentSeconds)/totalSeconds)*100;
// return percentage
return percentage.intValue();
}
希望这有帮助