VideoView android,防止触摸5秒。 Android

VideoView android, prevent ontouch for 5 seconds. Android

我有一个视频视图,它根据用户的不同事件播放不同的视频剪辑。我已经设置了 videoview,当用户点击视图时,它会停止视频并 returns 到上一个屏幕。但是我想设置它不能点击视频 5 秒(例如),只有在点击屏幕 5 秒后视频才会停止。 [因此电影将至少播放 5 秒,然后才能停止]

这是 videoview ontouch 侦听器的代码:

  videoView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {


                    Log.d(TAG, "video clicked");

                    videoView.stopPlayback();

                    videoView.setVisibility(View.INVISIBLE);


                    return true;
                }
            }); 

我试过使用处理程序,但我不知道该把它放在哪里。因为如果我在 5 秒后将 stopPlayback 方法放入处理程序,那么如果有人在 5 秒前单击视图,视频将在 5 秒后停止。 ,但我想要的是在 5 秒之前点击什么都不会发生。

非常感谢,

在 5 秒延迟之前不要设置 onTouchListener。这样,在前 5 秒内,没有触摸事件被注册,而在 setOnTouchListener 5 秒后,侦听器已准备好接收触摸事件。尝试这样的事情:

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {

        //Execute code here

        videoView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {

                    Log.d(TAG, "video clicked");

                    videoView.stopPlayback();

                    videoView.setVisibility(View.INVISIBLE);

                    return true;
                }
            }); 

    }
}, 5000);

或者,使用 Ajinkya S 的建议:

videoView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {

            Log.d(TAG, "video clicked");

            videoView.stopPlayback();

            videoView.setVisibility(View.INVISIBLE);

            return true;
        }
    });
videoView.setEnabled(false);


Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {

        //Execute code here
        videoView.setEnabled(true);

    }
}, 5000);