喜欢标题。我不知道怎么做。我知道我可以使用
mSeekBar.setProgress(mMediaPlayer.getCurrentDuration());
但我不知道如何实现一些监听当前持续时间变化的监听器。我使用MediaPlayer,该类提供了很多听众但不是。
答案 0 :(得分:0)
答案 1 :(得分:0)
在我的应用程序中,我控制服务中的音乐播放。为了在播放音乐时更新我的搜索栏的进度,我创建了一个工作线程,只要我的MediaPlayer不为空并且它的当前位置小于它的总持续时间,就会询问服务该歌曲的当前进度。然后我每隔一秒更新我的搜索栏的进度,并使用处理程序更新它旁边的文本视图。
public void updateSeekBar() {
// Worker thread that will update the seekbar as each song is playing
Thread t = new Thread() {
Handler handler = new Handler();
@Override
public void run() {
// Log.d(TAG, "Updating Seekbar.....");
int currentPosition = 0;
int total = (int) PlayerService.getInstance().getDuration();
seekBar.setMax(total);
while (PlayerService.getInstance().mp != null
&& PlayerService.getInstance().mp.getCurrentPosition() < total) {
try {
Thread.sleep(1000);
currentPosition = PlayerService.getInstance().mp
.getCurrentPosition();
} catch (InterruptedException e) {
return;
} catch (Exception e) {
return;
}
seekBar.setProgress(PlayerService.getInstance().mp
.getCurrentPosition());
handler.post(new Runnable() {
@Override
public void run() {
setTimeLeft();
setTime();
}
});
}
}
};
t.start();
}