android开发,我想用VideoView写一个视频播放器,带进度条,视频播放完毕后,停止播放,并且进度条归零
时间: 2024-03-06 13:47:43 浏览: 239
好的,你可以参考以下代码实现:
1. 在布局文件中添加VideoView和SeekBar控件,如下所示:
```xml
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:max="100"
android:progress="0"/>
```
2. 在Activity中初始化VideoView和SeekBar,并设置监听器,如下所示:
```java
VideoView videoView = findViewById(R.id.videoView);
SeekBar seekBar = findViewById(R.id.seekBar);
// 设置视频路径
String videoPath = "your_video_path";
videoView.setVideoPath(videoPath);
// 设置进度条最大值
int duration = videoView.getDuration();
seekBar.setMax(duration);
// 播放视频
videoView.start();
// 设置SeekBar的监听器
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// 设置进度条最大值
int duration = videoView.getDuration();
seekBar.setMax(duration);
}
});
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// 停止播放,进度条归零
videoView.stopPlayback();
seekBar.setProgress(0);
}
});
// 设置SeekBar的监听器
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
// 用户拖动进度条,改变视频播放进度
videoView.seekTo(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// 用户开始拖动进度条
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// 用户停止拖动进度条
}
});
```
这样,你就可以实现一个带进度条的视频播放器,并在视频播放完毕后停止播放,并且进度条归零。
阅读全文