ストリーミング音楽プレーヤーを作成しようとしていますが、実装しようとしているSeekBarで少し問題が発生しています。現在、最初に再生された曲で正しく動作します。正しくシークでき、別のスレッドで更新されます。私が抱えている問題は、新しい曲が始まると、SeekBarが最後の曲の長さから現在の曲の進行状況までちらつくことです。どんな助けでもいただければ幸いです。
SeekBar宣言
progress = (SeekBar) findViewById(R.id.seekBar1);
progress.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser) {
media.seekTo(progress);
}
else {
}
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});
別のスレッドでのSeekBarの更新
int current = 0;
int total = media.getDuration();
progress.setMax(total);
progress.setIndeterminate(false);
while(media!=null && current < total){
try {
Thread.sleep(1000);
current = media.getCurrentPosition();
progress.setProgress(current);
} catch (Exception e) {
e.printStackTrace();
}
};