如何从Android中的主视频播放特定时间的视频

时间:2017-06-27 12:10:39

标签: android

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秒内停止视频播放请建议我如何实现这一点。

2 个答案:

答案 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没有这方面的钩子,让我们退后一步:我们想做什么?

  1. 播放视频(已完成)
  2. 经过x段时间后,停止视频(待办事项)
  3. 实施计时器

    我们希望播放一段时间的视频,然后停止播放视频。为什么不实施Timer (see documentation)? 在此计时器上,您可以安排要执行的任务。

    一个警告:不要忘记cancel()计时器。否则,它会继续调用暂停/停止视频的方法。