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