我正在尝试创建一个简单的音乐播放器应用程序。我想在左边显示歌曲的当前运行时间,在右边显示歌曲的剩余持续时间。采用mm:ss格式。我正在调用一个定期更新搜索栏和左/右时间的线程。这首歌有4分36秒长。所以我想要看到的是像0:00在左边,4:36在右边开始的样子。左侧时间持续增加1秒,同时右侧时间减少1秒。但我看到的是30:00在左边,34:36在右边。最初,这两个时间都增加了额外的30分钟。为什么会发生这种情况?我是不是漏掉了什么?
public void updateThread(){
thread = new Thread(){
@Override
public void run() {enter code here
try{
while(mediaPlayer != null && mediaPlayer.isPlaying()){
Thread.sleep(50);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), String.valueOf(mediaPlayer.getCurrentPosition()), Toast.LENGTH_LONG).show();
seekBar.setMax(mediaPlayer.getDuration());
seekBar.setProgress(mediaPlayer.getCurrentPosition());
leftTime.setText(String.valueOf(new SimpleDateFormat("m:ss").format(new Date(mediaPlayer.getCurrentPosition()))));
rightTime.setText(String.valueOf(new SimpleDateFormat("m:ss").format(new Date(mediaPlayer.getDuration() - mediaPlayer.getCurrentPosition()))));
}
});
}
}
catch (InterruptedException e){
e.printStackTrace();
}
}
};
thread.start();**
https://stackoverflow.com/questions/50657118
复制相似问题