【发布时间】:2018-07-31 01:16:16
【问题描述】:
在这里你可以看到我想要实现的目标
第一个gif是我现在拥有的,第二个是我想要的。
代码有效,但显示歌曲当前位置的文本视图仅在我停止拖动时更新,但我希望它在我拖动时更新。
查看我在链接中发布的 gif,以便您了解我想要实现的目标。
提前致谢,
文斯
updateProgressBar();当我换歌时调用
我的代码
private Runnable mUpdateTime = new Runnable() {
@Override
public void run() {
long songCurrentTime = mediaPlayer.getCurrentPosition();
long songTotalTime = mediaPlayer.getDuration();
tvSongCurrentTime.setText(""+utilities.msToTimer(songCurrentTime));
tvSongTotalTime.setText(""+utilities.msToTimer(songTotalTime));
int progress = (int)(utilities.getProgressPercentage(songCurrentTime, songTotalTime));
seekBar.setProgress(progress);
mHandler.postDelayed(this, 100);
}
};
public void updateProgressBar(){
mHandler.postDelayed(mUpdateTime, 100);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean
fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
mHandler.removeCallbacks(mUpdateTime);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mHandler.removeCallbacks(mUpdateTime);
int songTotalTime = mediaPlayer.getDuration() ;
int currentPosition = utilities.progressToTimer(seekBar.getProgress(),
songTotalTime);
mediaPlayer.seekTo(currentPosition);
updateProgressBar();
}
【问题讨论】:
-
使用 updateProgressBar();在 onProgressChanged 中也
标签: java android listener runnable android-seekbar