<SeekBar
android:id="@+id/sb"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
进度条触摸事件
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//进度条改变
if (fromUser) {
mediaPlayer.seekTo(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//开始触摸进度条
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//停止触摸进度条
}
});
handler更新进度条
private final int UPDATE_PROGRESS = 0;
//使用handler定时更新进度条
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE_PROGRESS:
updateProgress();
break;
}
}
};
//更新进度条
private void updateProgress() {
int currenPostion = mediaPlayer.getCurrentPosition();
seekBar.setMax(mediaPlayer.getDuration());
seekBar.setProgress(currenPostion);
//使用Handler每500毫秒更新一次进度条
handler.sendEmptyMessageDelayed(UPDATE_PROGRESS, 500);
}
进入界面更新
@Override
protected void onResume() {
super.onResume();
//进入界面开始更新进度条
if (mediaPlayer != null) {
handler.sendEmptyMessage(UPDATE_PROGRESS);
}
}