android Webview播放视频全屏问题

问题

发现在android4.0以上机型上,直接使用Webview加载带视频的html,点击视屏控件的全屏,无法全屏的问题.

各种尝试后,终于解决了问题.

解决

  1. 首先在根布局上设置一个 FrameLayout 来放置全屏下的视频内容,遮盖所有的内容.
  2. 然后在代码中设置 WebChromeClient
webView.setWebChromeClient(new MyWebChromeClient());

 class MyWebChromeClient extends WebChromeClient {
        private View myView = null;
        // 全屏
        @Override
        public void onShowCustomView(View view, CustomViewCallback callback) {
            super.onShowCustomView(view, callback);
            ViewGroup parent = (ViewGroup) webView.getParent();
            parent.removeView(webView);

            fl_full_video.addView(view);
            fl_full_video.setVisibility(View.VISIBLE);
            myView = view;
            setFullScreen();
        }

        // 退出全屏
        @Override
        public void onHideCustomView() {
            super.onHideCustomView();
            if (myView != null) {
                fl_full_video.removeAllViews();
                fl_webview.addView(webView);
                fl_full_video.setVisibility(View.GONE);

                myView = null;
                quitFullScreen();
            }
        }
    }
    /**
     * 设置全屏
     */
    private void setFullScreen() {
        // 设置全屏的相关属性,获取当前的屏幕状态,然后设置全屏
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }

    /**
     * 退出全屏
     */
    private void quitFullScreen() {
        // 声明当前屏幕状态的参数并获取
        final WindowManager.LayoutParams attrs = this.getWindow().getAttributes();
        attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
        this.getWindow().setAttributes(attrs);
        this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
    }
  1. 字段
    1. fl_full_video是全屏后把视频内容放置的view
    2. fl_webviewwebview的父view
  2. 主要通过重写 onShowCustomViewonHideCustomView,首先通过onShowCustomView中的内容view加入到全屏时的view中,然后再把webview从view中移除.然后在退出全屏时,在onHideCustomView中把webview加回到父view中,并且移除和隐藏全屏的view.

猜你喜欢

转载自blog.csdn.net/lxh327523471/article/details/84742910
今日推荐