public class MergeVideo extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myfirstpage);
VideoView myVideoView = (VideoView)findViewById(R.id.myvideoview);
myVideoView.setVideoPath("/storage/emulated/0/Android/data/com.example.android.camera2video/files/a.mp4");
myVideoView.setMediaController(new MediaController(this));
myVideoView.requestFocus();
myVideoView.seekTo(6000);
myVideoView.start();
}
}
这是我播放视频的代码。我有一个主视频文件19秒长度我想播放视频从6秒到12秒我能够从6秒开始视频。我不知道如何在12秒内停止视频播放请建议我如何实现这一点。
答案 0 :(得分:0)
未对此进行测试,但它应该适用于您的情况。
private VideoView mVideoView;
private boolean mShouldStop = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mVideoView = (VideoView) findViewById(R.id.myvideoview);
mVideoView.setVideoPath("/storage/emulated/0/Android/data/com.example.android.camera2video/files/a.mp4");
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
mVideoView.seekTo(6000);
mVideoView.start();
trackProgress();
}
private void trackProgress() {
new Thread(new Runnable() {
@Override
public void run() {
while (!mShouldStop) {
if (mVideoView != null && mVideoView.isPlaying()) {
if (mVideoView.getCurrentPosition() >= 12000) {
mVideoView.stopPlayback();
mShouldStop = true;
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
答案 1 :(得分:0)
由于VideoView documentation没有这方面的钩子,让我们退后一步:我们想做什么?
我们希望播放一段时间的视频,然后停止播放视频。为什么不实施Timer (see documentation)? 在此计时器上,您可以安排要执行的任务。
一个警告:不要忘记cancel()
计时器。否则,它会继续调用暂停/停止视频的方法。