From bdc1a6c05ce91add0c3a2ffab23b028c0099c3fd Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 14 十月 2020 14:14:21 +0800
Subject: [PATCH] Merge branch '3.7.8' into 3.7.9

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

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
index 9b7b348..be9397b 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
@@ -4,6 +4,8 @@
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
 import android.graphics.BitmapFactory;
 import android.graphics.Color;
 import android.graphics.PixelFormat;
@@ -18,13 +20,17 @@
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.FrameLayout;
 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;
@@ -34,27 +40,36 @@
 import com.tencent.smtt.sdk.WebView;
 import com.tencent.smtt.sdk.WebViewClient;
 import com.umeng.analytics.MobclickAgent;
+import com.weikou.beibeivideo.R;
 import com.weikou.beibeivideo.ui.BaseActivity;
 import com.weikou.beibeivideo.ui.media.VideoDetailActivity;
 import com.weikou.beibeivideo.util.browser.BWJavaInterface;
 import com.weikou.beibeivideo.util.downutil.DownFiles;
 import com.weikou.beibeivideo.util.downutil.DownFiles.IProgress;
-import com.weikou.beibeivideo.util.x5.X5WebView;
-import com.weikou.beibeivideo.R;
+import com.weikou.beibeivideo.util.x5.X5PlayerWebView;
+import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient.CustomViewCallback;
 
+/**
+ * 瑙嗛鎾斁缃戦〉
+ */
 public class VideoPlayerActivity extends BaseActivity implements OnClickListener {
 
     private TextView tv_top_bar_left;
     private TextView tv_title;
     private TextView tv_url;
     private ImageView iv_refresh;
-    private X5WebView webview;
+    private X5PlayerWebView webview;
     ProgressBar progressBar;
 
 
     private void initX5WebView() {
-        webview = findViewById(R.id.webview);
+        FrameLayout webViewContainer = findViewById(R.id.webview_container);
+        webview = new X5PlayerWebView(this, null);
+        webViewContainer.addView(webview, new FrameLayout.LayoutParams(
+                FrameLayout.LayoutParams.MATCH_PARENT,
+                FrameLayout.LayoutParams.MATCH_PARENT));
         webview.setDownloadListener(new MyWebViewDownLoadListener());
+
         webview.setWebViewClient(new WebViewClient() {
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
@@ -100,6 +115,10 @@
 
         webview.setWebChromeClient(new WebChromeClient() {
 
+            View myVideoView;
+            View myNormalView;
+            IX5WebChromeClient.CustomViewCallback callback;
+
             @Override
             public void onReceivedTitle(WebView view, String title) {
                 tv_title.setText(title);
@@ -117,6 +136,43 @@
                 }
                 super.onProgressChanged(webView, i);
             }
+
+            /**
+             * 鍏ㄥ睆鎾斁閰嶇疆
+             */
+            @Override
+            public void onShowCustomView(View view,
+                                         CustomViewCallback customViewCallback) {
+                LinearLayout normalView = (LinearLayout) findViewById(R.id.ll_container);
+                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);
@@ -146,6 +202,8 @@
         } else {
             findViewById(R.id.v_status_bar).setVisibility(View.GONE);
         }
+        initX5WebView();
+
         tv_title = findViewById(R.id.tv_title);
         tv_url = findViewById(R.id.tv_url);
         iv_refresh = findViewById(R.id.iv_refresh);
@@ -158,8 +216,9 @@
         progressBar.setMax(100);
         progressBar.setProgressDrawable(this.getResources()
                 .getDrawable(R.drawable.color_progressbar));
-        initX5WebView();
-        webview.loadUrl(getIntent().getStringExtra("url"));
+
+        String url = getIntent().getStringExtra("url");
+        webview.loadUrl(url);
         tv_url.setText(webview.getUrl());
     }
     // 鏂囦欢涓嬭浇鐩戝惉
@@ -270,7 +329,6 @@
     public void onResume() {
         super.onResume();
         MobclickAgent.onPageStart("缃戦〉");
-        webview.reload();
     }
 
     @Override
@@ -321,4 +379,9 @@
         }
         return super.onKeyDown(keyCode, event);
     }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+    }
 }

--
Gitblit v1.8.0