From 5b64c2125ac769cffa3a2c5ac86a03c5aa310e04 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期二, 13 十月 2020 20:05:40 +0800
Subject: [PATCH] 视频播放器优化

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
index ee4ff3a..6a7091e 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
@@ -4,6 +4,7 @@
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
 import android.graphics.BitmapFactory;
 import android.graphics.Color;
 import android.graphics.PixelFormat;
@@ -18,13 +19,16 @@
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.view.WindowManager;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.LinearLayout.LayoutParams;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 import android.widget.Toast;
 
 import com.lcjian.library.util.ManifestDataUtil;
+import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient;
 import com.tencent.smtt.export.external.interfaces.SslError;
 import com.tencent.smtt.export.external.interfaces.SslErrorHandler;
 import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
@@ -103,6 +107,10 @@
 
         webview.setWebChromeClient(new WebChromeClient() {
 
+            View myVideoView;
+            View myNormalView;
+            IX5WebChromeClient.CustomViewCallback callback;
+
             @Override
             public void onReceivedTitle(WebView view, String title) {
                 tv_title.setText(title);
@@ -120,6 +128,43 @@
                 }
                 super.onProgressChanged(webView, i);
             }
+
+            /**
+             * 鍏ㄥ睆鎾斁閰嶇疆
+             */
+            @Override
+            public void onShowCustomView(View view,
+                                         IX5WebChromeClient.CustomViewCallback customViewCallback) {
+                LinearLayout normalView = (LinearLayout) findViewById(R.id.ll_content);
+                ViewGroup viewGroup = (ViewGroup) normalView.getParent();
+                viewGroup.removeView(normalView);
+                viewGroup.addView(view);
+                myVideoView = view;
+                myNormalView = normalView;
+                callback = customViewCallback;
+                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+                WindowManager.LayoutParams attrs = getWindow().getAttributes();
+                attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
+                getWindow().setAttributes(attrs);
+            }
+
+            @Override
+            public void onHideCustomView() {
+                if (callback != null) {
+                    callback.onCustomViewHidden();
+                    callback = null;
+                }
+                if (myVideoView != null) {
+                    ViewGroup viewGroup = (ViewGroup) myVideoView.getParent();
+                    viewGroup.removeView(myVideoView);
+                    viewGroup.addView(myNormalView);
+                }
+                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+                WindowManager.LayoutParams attrs = getWindow().getAttributes();
+                attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
+                getWindow().setAttributes(attrs);
+            }
+
         });
         WebSettings webSetting = webview.getSettings();
         webSetting.setJavaScriptEnabled(true);

--
Gitblit v1.8.0