在Android中,你可以使用VideoView的seekTo()
方法来控制播放进度。以下是一个简单的示例:
- 首先,在你的布局文件中添加一个VideoView:
- 然后,在你的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来控制VideoView的播放进度了。