package com.hanju.video.app.ui.video;
|
|
import android.content.pm.ActivityInfo;
|
import android.os.Bundle;
|
import android.util.Log;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.WindowManager;
|
import android.widget.ImageView;
|
|
import com.hanju.lib.library.RetainViewFragment;
|
import com.hanju.video.app.R;
|
import com.hanju.video.app.util.x5web.X5WebView;
|
import com.tencent.smtt.export.external.interfaces.ConsoleMessage;
|
import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient;
|
import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
|
import com.tencent.smtt.export.external.interfaces.WebResourceResponse;
|
import com.tencent.smtt.sdk.WebChromeClient;
|
import com.tencent.smtt.sdk.WebSettings;
|
import com.tencent.smtt.sdk.WebView;
|
import com.tencent.smtt.sdk.WebViewClient;
|
|
/**
|
* 专题碎片
|
*/
|
public class VideoWebPlayerFragment extends RetainViewFragment {
|
|
private static final String TAG = "VideoWebPlayerFragment";
|
private String playUrl;
|
private String url;
|
private String title;
|
|
private X5WebView webview;
|
|
private ImageView iv_back;
|
|
public static VideoWebPlayerFragment newInstance(String title, String url, String playUrl) {
|
VideoWebPlayerFragment fragment = new VideoWebPlayerFragment();
|
Bundle bundle = new Bundle();
|
bundle.putString("url", url);
|
bundle.putString("title", title);
|
bundle.putString("playUrl", playUrl);
|
fragment.setArguments(bundle);
|
return fragment;
|
}
|
|
public void setVideoInfo(String title, String url, String playUrl) {
|
this.title = title;
|
this.url = url;
|
this.playUrl = playUrl;
|
webview.loadUrl(playUrl);
|
}
|
|
@Override
|
public int getContentResource() {
|
return R.layout.fragment_web_player;
|
}
|
|
|
private void initPlayer() {
|
}
|
|
private void initX5WebView(View view) {
|
webview = view.findViewById(R.id.webview);
|
webview.setWebViewClient(new WebViewClient() {
|
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView webView, String s) {
|
return super.shouldOverrideUrlLoading(webView, s);
|
}
|
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest webResourceRequest) {
|
return super.shouldOverrideUrlLoading(webView, webResourceRequest);
|
}
|
|
@Override
|
public WebResourceResponse shouldInterceptRequest(WebView webView, String s) {
|
WebResourceResponse resourceResponse = super.shouldInterceptRequest(webView, s);
|
return resourceResponse;
|
}
|
|
|
});
|
webview.setWebChromeClient(new WebChromeClient() {
|
|
View myVideoView;
|
View myNormalView;
|
IX5WebChromeClient.CustomViewCallback callback;
|
|
|
@Override
|
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
|
Log.i(TAG, consoleMessage.message());
|
return super.onConsoleMessage(consoleMessage);
|
}
|
|
/**
|
* 全屏播放配置
|
*/
|
@Override
|
public void onShowCustomView(View view,
|
IX5WebChromeClient.CustomViewCallback customViewCallback) {
|
ViewGroup viewGroup = (ViewGroup) webview.getParent();
|
viewGroup.removeView(webview);
|
viewGroup.addView(view);
|
myVideoView = view;
|
myNormalView = webview;
|
callback = customViewCallback;
|
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
WindowManager.LayoutParams attrs = getActivity().getWindow().getAttributes();
|
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
getActivity().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);
|
}
|
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
WindowManager.LayoutParams attrs = getActivity().getWindow().getAttributes();
|
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
getActivity().getWindow().setAttributes(attrs);
|
}
|
|
|
});
|
|
|
WebSettings webSetting = webview.getSettings();
|
webSetting.setJavaScriptEnabled(true);
|
webSetting.setTextZoom(100);
|
}
|
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
|
url = getArguments().getString("url", "");
|
playUrl = getArguments().getString("playUrl", "");
|
title = getArguments().getString("title", "");
|
iv_back = contentView.findViewById(R.id.iv_back);
|
iv_back.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
|
if (getActivity().getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
|
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
} else {
|
getActivity().finish();
|
}
|
}
|
});
|
initPlayer();
|
initX5WebView(contentView);
|
webview.loadUrl(playUrl);
|
}
|
|
|
public void onBackPressed() {
|
//先返回正常状态
|
if (getActivity().getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
|
iv_back.performClick();
|
return;
|
}
|
//释放所有
|
// videoPlayer.setVideoAllCallBack(null);
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
webview.onResume();
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
webview.onPause();
|
}
|
|
@Override
|
public void onDestroy() {
|
super.onDestroy();
|
}
|
}
|