Android SeekBar 随时更新视频进度
时间: 2023-08-02 14:11:33 浏览: 104
要在 Android SeekBar 中实时更新视频进度,你需要在代码中实现以下步骤:
1. 初始化 SeekBar 和 MediaPlayer。
2. 在 SeekBar 上设置 OnSeekBarChangeListener,以监听拖动事件。
3. 在拖动事件中,更新 MediaPlayer 的当前位置。
4. 在 MediaPlayer 中设置 OnPreparedListener,以获取视频的总长度。
5. 使用 Handler 定期更新 SeekBar 的进度,以反映当前视频的进度。
下面是一些示例代码,用于演示如何在 Android SeekBar 中实时更新视频进度:
```
// 初始化 SeekBar 和 MediaPlayer
SeekBar seekBar = findViewById(R.id.seek_bar);
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.video);
// 监听 SeekBar 的拖动事件
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
// 如果是用户拖动 SeekBar,更新 MediaPlayer 的当前位置
mediaPlayer.seekTo(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
// 获取视频的总长度
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
int duration = mediaPlayer.getDuration();
seekBar.setMax(duration);
}
});
// 定期更新 SeekBar 的进度
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
int currentPosition = mediaPlayer.getCurrentPosition();
seekBar.setProgress(currentPosition);
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(runnable, 1000);
```
上面的代码中,我们使用了 Handler 定期更新 SeekBar 的进度,间隔为 1 秒钟。在实际应用中,你可以根据需要调整更新的频率。另外,由于视频播放需要消耗大量的资源,建议在退出页面时及时释放 MediaPlayer。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)