今天在学习MediaPlayer中增加SeekBar随着播放进度实时更新的进度。此功能的实现方法:SeekBar每隔一段时间就调用其
setProgress()方法获取MediaPlayer当前位置,详细写法如下:
mSeekBar.setProgress(mMediaPlayer.getCurrentPosition());
实现这个功能的关键点是如何让这行代码隔一段时间就执行,想到Timer不太会用,就先用自己熟悉的Runnable和Handler实现吧。而且这里边还涉及到更新UI,因此使用Runnable和Handler更加方便。
在Runnable中发送Message,Handler中接收到Message后更新SeekBar位置。
seekHandler = new Handler() {
public void handleMessage(Message message) {
super.handleMessage(message);
//Log.i("方法执行", "handleMessage");
if (message.what == 1) {
mSeekBar.setProgress(mMediaPlayer.getCurrentPosition());
}
}
};
runnable = new Runnable() {
@Override
public void run() {
Message message = new Message();
message.what &#