android开发,我想用VideoView写一个视频播放器,要带有进度条,并且视频播放完成后暂停,进度条归零
时间: 2024-03-06 20:48:05 浏览: 74
Android移动开发-使用VideoView播放视频的实现
5星 · 资源好评率100%
好的,可以按照以下步骤来实现:
1. 在布局文件中添加一个 VideoView 和一个 SeekBar(进度条):
```
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<SeekBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
```
2. 在 Activity 中获取 VideoView 和 SeekBar 的实例,并设置视频路径和监听器:
```
VideoView videoView = findViewById(R.id.video_view);
SeekBar progressBar = findViewById(R.id.progress_bar);
videoView.setVideoPath("视频路径");
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
progressBar.setMax(videoView.getDuration());
videoView.start();
}
});
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
videoView.pause();
progressBar.setProgress(0);
}
});
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// 处理错误情况
return false;
}
});
```
3. 在 SeekBar 上添加监听器,实现拖动进度条改变视频播放进度的功能:
```
progressBar.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) {
videoView.pause();
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
videoView.start();
}
});
```
以上就是使用 VideoView 实现视频播放器,并带有进度条的全部代码,其中视频路径需要替换成你实际的视频文件路径。
阅读全文