在Android中,你可以使用VideoView的seekTo()
方法來控制播放進度。以下是一個簡單的示例:
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
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
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
現在,你可以通過拖動SeekBar來控制VideoView的播放進度了。