BuWanVideo/AndroidManifest.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/libs/tbs_sdk_thirdapp_v4.3.0.39_43939_sharewithdownloadwithfile_withoutGame_obfs_20200713_223411.jar | 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/res/layout/activity_video_player.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/res/values/strings.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/util/browser/BWJavaInterface.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/util/x5/X5PlayerWebView.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BuWanVideo/src/com/weikou/beibeivideo/util/x5/X5WebView.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
BuWanVideo/AndroidManifest.xml
@@ -223,20 +223,6 @@ android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!--x5内核视频播放器 --> <activity android:name="com.tencent.smtt.sdk.VideoActivity" android:alwaysRetainTaskState="true" android:configChanges="orientation|screenSize|keyboardHidden" android:exported="false" android:launchMode="singleTask"> <intent-filter> <action android:name="com.tencent.smtt.tbs.video.PLAY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <service android:name="com.ysh.wpc.appupdate.service.DownLoadFileService"></service> <service android:name="com.weikou.wpc.superad.service.DownLoadFileService"></service> <service android:name="com.weikou.beibeivideo.service.DownLoadFileService" /> BuWanVideo/build.gradle
@@ -14,7 +14,7 @@ //聚能赚 api files('libs/YmSdk20200820.aar') api files('libs/tbs_sdk_thirdapp_v4.3.0.39_43939_sharewithdownloadwithfile_withoutGame_obfs_20200713_223411.jar') api project(':social_sdk_library_project') @@ -45,7 +45,6 @@ implementation 'com.alibaba.sdk.android:AlibcTradeCommon:4.0.0.15@aar' implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.15@aar' implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.15@aar' implementation files('libs/tbs_sdk_thirdapp_v4.3.0.39_43939.jar') implementation 'com.android.support:cardview-v7:27.1.1' //权限请求 @@ -81,8 +80,8 @@ } defaultConfig { applicationId "com.doudou.ysvideo" versionCode 96 versionName "3.7.8" versionCode 97 versionName "3.7.9" multiDexEnabled = true minSdkVersion 17 targetSdkVersion 27 BuWanVideo/libs/tbs_sdk_thirdapp_v4.3.0.39_43939_sharewithdownloadwithfile_withoutGame_obfs_20200713_223411.jarBinary files differ
BuWanVideo/res/layout/activity_video_player.xml
@@ -1,82 +1,89 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/theme"> <LinearLayout android:id="@+id/ll_container" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical"> android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv_top_bar_left" style="@style/TextBuleNormal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:drawableLeft="@drawable/ic_back_two" android:drawablePadding="3dp" android:gravity="center" android:padding="8dp" /> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center_vertical" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical"> <TextView android:id="@+id/tv_title" android:layout_width="match_parent" android:id="@+id/tv_top_bar_left" style="@style/TextBuleNormal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:text="" android:textColor="#DDDDDD" android:textSize="15sp"></TextView> android:layout_centerVertical="true" android:drawableLeft="@drawable/ic_back_two" android:drawablePadding="3dp" android:gravity="center" android:padding="8dp" /> <TextView android:id="@+id/tv_url" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:ellipsize="end" android:maxLines="1" android:textColor="#DDDDDD" android:textSize="8sp"></TextView> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center_vertical" android:orientation="vertical"> <TextView android:id="@+id/tv_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:text="" android:textColor="#DDDDDD" android:textSize="15sp"></TextView> <TextView android:id="@+id/tv_url" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:ellipsize="end" android:maxLines="1" android:textColor="#DDDDDD" android:textSize="8sp"></TextView> </LinearLayout> <ImageView android:id="@+id/iv_refresh" android:layout_width="48dp" android:layout_height="48dp" android:padding="13dp" android:src="@drawable/ic_refresh"></ImageView> </LinearLayout> <ImageView android:id="@+id/iv_refresh" android:layout_width="48dp" android:layout_height="48dp" android:padding="13dp" android:src="@drawable/ic_refresh"> </ImageView> <ProgressBar android:id="@+id/myProgressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="3dp" android:background="@color/yellow" /> <FrameLayout android:id="@+id/webview_container" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> <ProgressBar android:id="@+id/myProgressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="3dp" android:background="@color/yellow" /> <com.weikou.beibeivideo.util.x5.X5WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> </FrameLayout> BuWanVideo/res/values/strings.xml
@@ -1,5 +1,5 @@ <resources> <string name="app_name">影视大全布丸</string> <string name="app_name">影视大全</string> <string name="recommend">推荐</string> <string name="category">分类</string> <string name="discover">发现</string> BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java
@@ -40,6 +40,9 @@ import com.weikou.beibeivideo.util.novel.NovelJNZUtil; public class BeibeiVideoApplication extends Application { private final String TAG = BeibeiVideoApplication.class.getName(); public static BeibeiVideoApplication application = null; public static String deviceName = null; public static String deviceNumber = null; @@ -121,7 +124,7 @@ } private void initTaoKe(){ private void initTaoKe() { AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() { @Override public void onSuccess() { @@ -156,7 +159,7 @@ public void onViewInitFinished(boolean arg0) { // TODO Auto-generated method stub //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。 Log.d("app", " onViewInitFinished is " + arg0); Log.d(TAG, " onViewInitFinished is " + arg0); } @Override BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerActivity.java
@@ -5,6 +5,7 @@ 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; @@ -20,6 +21,7 @@ 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; @@ -38,13 +40,14 @@ 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; /** * 视频播放网页 @@ -55,13 +58,18 @@ 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) { @@ -134,8 +142,8 @@ */ @Override public void onShowCustomView(View view, IX5WebChromeClient.CustomViewCallback customViewCallback) { LinearLayout normalView = (LinearLayout) findViewById(R.id.ll_content); CustomViewCallback customViewCallback) { LinearLayout normalView = (LinearLayout) findViewById(R.id.ll_container); ViewGroup viewGroup = (ViewGroup) normalView.getParent(); viewGroup.removeView(normalView); viewGroup.addView(view); @@ -194,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); @@ -206,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()); } // 文件下载监听 @@ -318,7 +329,6 @@ public void onResume() { super.onResume(); MobclickAgent.onPageStart("网页"); webview.reload(); } @Override @@ -369,4 +379,9 @@ } return super.onKeyDown(keyCode, event); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } } BuWanVideo/src/com/weikou/beibeivideo/util/browser/BWJavaInterface.java
@@ -5,14 +5,13 @@ import android.content.pm.PackageManager; import android.support.v4.content.ContextCompat; import android.webkit.JavascriptInterface; import android.webkit.WebView; import android.widget.ImageView; import android.widget.TextView; import com.lcjian.library.util.common.StringUtils; import com.tencent.smtt.sdk.WebView; import com.weikou.beibeivideo.util.AlibcTradeUtil; import com.weikou.beibeivideo.util.JumpActivityUtil; import com.weikou.beibeivideo.util.x5.X5WebView; import org.json.JSONException; import org.json.JSONObject; @@ -24,10 +23,10 @@ Activity mContext; TextView tv_top_bar_middle, tv_top_bar_left2, tv_top_bar_right; ImageView iv_right; X5WebView webview; WebView webview; private boolean boo = false; public BWJavaInterface(Activity activity, X5WebView webview) { public BWJavaInterface(Activity activity, WebView webview) { super(activity); mContext = activity; this.webview = webview; @@ -36,7 +35,7 @@ public BWJavaInterface(Activity activity, TextView tv_top_bar_middle , TextView tv_top_bar_left2, TextView tv_top_bar_right , ImageView iv_right, X5WebView webview) { , ImageView iv_right, WebView webview) { super(activity); mContext = activity; this.tv_top_bar_middle = tv_top_bar_middle; BuWanVideo/src/com/weikou/beibeivideo/util/x5/X5PlayerWebView.java
New file @@ -0,0 +1,95 @@ package com.weikou.beibeivideo.util.x5; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Build; import android.os.Bundle; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import com.tencent.smtt.sdk.CookieSyncManager; import com.tencent.smtt.sdk.QbSdk; import com.tencent.smtt.sdk.WebSettings; import com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm; import com.tencent.smtt.sdk.WebView; import com.tencent.smtt.sdk.WebViewClient; public class X5PlayerWebView extends WebView { TextView title; private WebViewClient client = new WebViewClient() { /** * 防止加载网页时调起系统浏览器 */ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }; @SuppressLint("SetJavaScriptEnabled") public X5PlayerWebView(Context arg0, AttributeSet arg1) { super(arg0, arg1); this.setWebViewClient(client); initWebViewSettings(); this.getView().setClickable(true); } private void initWebViewSettings() { WebSettings webSetting = this.getSettings(); webSetting.setJavaScriptEnabled(true); webSetting.setJavaScriptCanOpenWindowsAutomatically(true); webSetting.setAllowFileAccess(true); webSetting.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); webSetting.setSupportZoom(false); webSetting.setBuiltInZoomControls(true); webSetting.setUseWideViewPort(true); webSetting.setSupportMultipleWindows(true); // webSetting.setLoadWithOverviewMode(true); webSetting.setAppCacheEnabled(true); // webSetting.setDatabaseEnabled(true); webSetting.setDomStorageEnabled(true); webSetting.setGeolocationEnabled(true); webSetting.setAppCacheMaxSize(Long.MAX_VALUE); // webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY); webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND); // webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH); webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE); // this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension // settings 的设计 webSetting.setUserAgent(webSetting.getUserAgentString().replace("TBS", "BUWAN").replace("MQQBrowser", "BUWANBrowser")); webSetting.setTextZoom(100); try { Bundle data = new Bundle(); //true表示标准全屏,false表示X5全屏;不设置默认false, data.putBoolean("standardFullScreen", true); //false:关闭小窗;true:开启小窗;不设置默认true, data.putBoolean("supportLiteWnd", false); //1:以页面内开始播放,2:以全屏开始播放;不设置默认:1 data.putInt("DefaultVideoScreen", 1); this.getX5WebViewExtension().invokeMiscMethod("setVideoParams", data); } catch (Exception e) { } CookieSyncManager.createInstance(getContext()); CookieSyncManager.getInstance().sync(); } @Override protected boolean drawChild(Canvas canvas, View child, long drawingTime) { boolean ret = super.drawChild(canvas, child, drawingTime); canvas.save(); return ret; } public X5PlayerWebView(Context arg0) { super(arg0); setBackgroundColor(85621); } } BuWanVideo/src/com/weikou/beibeivideo/util/x5/X5WebView.java
@@ -38,7 +38,7 @@ private void initWebViewSettings() { WebSettings webSetting = this.getSettings(); webSetting.setJavaScriptEnabled(true); // webSetting.setJavaScriptCanOpenWindowsAutomatically(true); webSetting.setJavaScriptCanOpenWindowsAutomatically(true); webSetting.setAllowFileAccess(true); webSetting.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); webSetting.setSupportZoom(false);