在Android中,你可以使用VideoView的seekTo()
方法来控制播放进度。以下是一个简单的示例:
- 首先,在你的布局文件中添加一个VideoView:
<VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="wrap_content" />
- 然后,在你的Activity或Fragment中,初始化VideoView并设置视频源:
import android.net.Uri;
import android.widget.MediaController;
import android.widget.VideoView;
public class MainActivity extends AppCompatActivity {
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoView = findViewById(R.id.videoView);
// 设置视频源
Uri videoUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.your_video_file);
videoView.setVideoURI(videoUri);
// 添加媒体控制器以便于控制播放进度
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
mediaController.setAnchorView(videoView);
// 开始播放视频
videoView.start();
}
}
- 为了控制播放进度,你需要监听视频播放的时间轴。你可以通过设置一个
OnSeekBarChangeListener
来实现这个功能:
import android.widget.SeekBar;
// ...
public class MainActivity extends AppCompatActivity {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
// 创建一个SeekBar来显示视频播放进度
SeekBar seekBar = findViewById(R.id.seekBar);
videoView.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// 当用户拖动SeekBar时,更新视频播放进度
if (fromUser) {
videoView.seekTo(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// 不需要实现此方法
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// 不需要实现此方法
}
});
}
}
- 最后,确保你的布局文件中有一个SeekBar:
<SeekBar android:id="@+id/seekBar" android:layout_width="match_parent" android:layout_height="wrap_content" />
现在,你可以通过拖动SeekBar来控制VideoView的播放进度了。