原文地址:https://www.5axxw.com/questions/simple/qvw0cf
1. 创建MediaPlayer对象,设置播放源,设置监听器,准备播放:
// 创建MediaPlayer对象
MediaPlayer mediaPlayer = new MediaPlayer();
// 设置播放源
mediaPlayer.setDataSource(url);
// 设置监听器
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// 准备完毕,开始播放
mediaPlayer.start();
}
});
// 准备播放
mediaPlayer.prepareAsync();
2. 创建SeekBar对象,设置最大值,设置监听器:
// 创建SeekBar对象
SeekBar seekBar = new SeekBar(this);
// 设置最大值
seekBar.setMax(mediaPlayer.getDuration());
// 设置监听器
seekBar.setOnSeekBarChangeListener(new 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) {
}
});
3. 创建定时器,每隔一段时间更新SeekBar的进度:
// 创建定时器
Timer timer = new Timer();
// 每隔一段时间更新SeekBar的进度
timer.schedule(new TimerTask() {
@Override
public void run() {
// 更新SeekBar的进度
seekBar.setProgress(mediaPlayer.getCurrentPosition());
}
}, 0, 500);