From 1981dee5aec45793d3c4ebdbc4e637528c71b3c5 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 03 二月 2021 19:20:47 +0800
Subject: [PATCH] 'PPTV'

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java |  153 +++++++++++++++++++++++++++++---------------------
 1 files changed, 89 insertions(+), 64 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java
index 0f506f4..3be524a 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java
@@ -41,10 +41,9 @@
 import com.fun.xm.ad.FSThirdAd;
 import com.fun.xm.ad.adloader.FSSRFeedAdLoader;
 import com.fun.xm.ad.adview.FSFeedAD;
-import com.fun.xm.ad.adview.FSPreMediaView;
 import com.fun.xm.ad.callback.FSFeedAdCallBack;
+import com.fun.xm.ad.listener.FSADMediaListener;
 import com.funshion.video.logger.FSLogcat;
-import com.funshion.video.util.FSError;
 import com.google.gson.FieldNamingPolicy;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -53,10 +52,11 @@
 import com.lcjian.library.widget.RatioLayout;
 import com.qq.e.ads.cfg.VideoOption;
 import com.qq.e.ads.nativ.MediaView;
-import com.qq.e.ads.nativ.NativeADMediaListener;
+import com.qq.e.ads.nativ.NativeADEventListener;
 import com.qq.e.ads.nativ.NativeUnifiedADData;
 import com.qq.e.comm.constants.AdPatternType;
 import com.qq.e.comm.util.AdError;
+import com.umeng.analytics.MobclickAgent;
 import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
 import com.weikou.beibeivideo.BeibeiVideoAPI;
 import com.weikou.beibeivideo.BeibeiVideoApplication;
@@ -71,9 +71,9 @@
 import com.weikou.beibeivideo.util.VideoUtil;
 import com.weikou.beibeivideo.util.downutil.StringUtils;
 import com.weikou.beibeivideo.util.ui.IPageEventListener;
-import com.yeshi.video.player.VideoDefinition;
-import com.yeshi.video.player.VideoEpisode;
-import com.yeshi.video.player.VideoPlayerController;
+import com.yeshi.video.player.common.VideoDefinition;
+import com.yeshi.video.player.common.VideoEpisode;
+import com.yeshi.video.player.common.VideoPlayerController;
 
 import org.apache.http.Header;
 import org.json.JSONObject;
@@ -83,6 +83,7 @@
 import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 
 import de.greenrobot.event.EventBus;
@@ -119,8 +120,6 @@
 
     //椋庤骞垮憡鍔犺浇鍣�
     private FSSRFeedAdLoader fssrFeedAdLoader;
-
-    private FSPreMediaView mFSVideoAD;
 
     private FunshionPlayInfo playInfo;
 
@@ -192,6 +191,7 @@
             @Override
             public void onAdLoadedFail(int i, String s) {
                 Log.i(TAG, "onAdLoadedFail:" + s);
+                iadLoadListener.finishAd();
             }
 
             @Override
@@ -249,7 +249,8 @@
             fsADView.bindAdToView(imageView, clickableViews, null);
         } else if (fsad.isVideo()) {
             MediaView mediaView = new MediaView(getContext());
-            fsADView.bindMediaView(mediaView, getVideoOption(), new NativeADMediaListener() {
+
+            fsADView.bindMediaView(mediaView, getVideoOption(), new FSADMediaListener() {
                 @Override
                 public void onVideoClicked() {
 
@@ -262,7 +263,7 @@
                 }
 
                 @Override
-                public void onVideoError(AdError adError) {
+                public void onVideoError(int i, String s) {
                     iadLoadListener.finishAd();
                 }
 
@@ -373,6 +374,28 @@
         if (mLayoutInflater == null)
             return;
         gdtAd = ad;
+        gdtAd.setNativeAdEventListener(new NativeADEventListener() {
+            @Override
+            public void onADClicked() {
+                Log.v(TAG, "onADClicked");
+            }
+
+            @Override
+            public void onADError(AdError adError) {
+                Log.v(TAG, "onADError");
+            }
+
+            @Override
+            public void onADExposed() {
+                Log.v(TAG, "onADExposed");
+            }
+
+            @Override
+            public void onADStatusChanged() {
+                Log.v(TAG, "onADStatusChanged");
+            }
+        });
+
         final View mContainer = mLayoutInflater.inflate(R.layout.item_funshion_gdt_ad_view, null);
         mDownloadButton = mContainer.findViewById(R.id.btn_download);
         mMediaView = mContainer.findViewById(R.id.gdt_media_view);
@@ -443,6 +466,7 @@
         }
         //浣滀负customClickableViews浼犲叆锛岀偣鍑讳笉杩涘叆璇︽儏椤碉紝鐩存帴涓嬭浇鎴栬繘鍏ヨ惤鍦伴〉锛屽彧鏈夎棰戝箍鍛婄敓鏁堬紝
         // 濡傛灉鏄浘鏂囷紝clickableViews鍜宑ustomClickableViews鐐瑰嚮閫昏緫涓�鑷�
+
         fsADView.bindAdToView(mContainer, clickableViews, mDownloadButton);
 
         if (ad.getAdPatternType() == AdPatternType.NATIVE_VIDEO) {
@@ -453,14 +477,13 @@
                     Log.v(TAG, "showAd type video 2");
                     mImagePoster.setVisibility(View.GONE);
                     mMediaView.setVisibility(View.VISIBLE);
-//                    ad.startVideo();
                 }
             });
 
             //4绉掑唴瑙嗛杩樻病鍔犺浇瀹屾垚鐨勮瘽灏辫烦杩�
             tv_skip.removeCallbacks(playADErrorRunnable);
-            tv_skip.postDelayed(playADErrorRunnable, 4000);
-            fsADView.bindMediaView(mMediaView, getVideoOption(), new NativeADMediaListener() {
+            tv_skip.postDelayed(playADErrorRunnable, 10000);
+            fsADView.bindMediaView(mMediaView, getVideoOption(), new FSADMediaListener() {
                 @Override
                 public void onVideoInit() {
                     Log.d(TAG, "onVideoInit: ");
@@ -527,12 +550,17 @@
                 }
 
                 @Override
-                public void onVideoError(AdError error) {
+                public void onVideoError(int i, String s) {
                     iadLoadListener.finishAd();
                 }
-
             });
-            ad.startVideo();
+//            mMediaView.post(new Runnable() {
+//                @Override
+//                public void run() {
+//                    ad.startVideo();
+//                }
+//            });
+
 
         } else if (ad.getAdPatternType() == AdPatternType.NATIVE_2IMAGE_2TEXT ||
                 ad.getAdPatternType() == AdPatternType.NATIVE_1IMAGE_2TEXT) {
@@ -562,16 +590,12 @@
     private void adShowFinish(FunshionPlayInfo info) {
         fl_ad.setVisibility(View.GONE);
         fl_ad.removeAllViews();
-        mFSVideoAD = null;
         //鎾斁瑙嗛
         mVideoSurfView.postDelayed(new Runnable() {
             @Override
             public void run() {
                 //鎾斁瑙嗛
-                if (!StringUtils.isNullOrEmpty(info.getPlayUrl().getAid()))
-                    playMedia(info.getPlayUrl().getAid(), (info.getPosition() + 1) + "");
-                else
-                    playVideo(info.getPlayUrl().getVid());
+                playVideo(info.getPlayUrl().getCode());
             }
         }, 1000);
     }
@@ -626,7 +650,7 @@
     /**
      * 鎾斁瑙嗛
      */
-    public synchronized void playVideo(String videoID) {
+    public synchronized void playVideo(String code) {
         createPlayer();
         if (mVideoPlayer.isPlaying()) {
             FSLogcat.e(TAG, "Call player to stop");
@@ -635,36 +659,15 @@
         }
         //锛侊紒锛佹敞鎰忔挱鏀鹃暱鐭棰戞瀯寤虹殑FSVideoReqData鏈夊尯鍒�傜煭瑙嗛娌℃湁epso鍒嗛泦ID銆傞暱瑙嗛鏈夈�傚~鍐欓敊璇皢鏃犳硶姝e父鎾斁
         //FSVideoReqData鏋勫缓闇�瑕佺殑鏁版嵁闇�瑕佷粠鏈嶅姟鍣ㄨ幏鍙栥�備富瑕佹槸濯掍綋璧勬簮videoID锛氣�淰IDEO_ID鈥� 榛樿 娓呮櫚搴︼細new Definition(Definition.CLARITY_LOW) 浠ュ強Accesstoken锛欰ccesstoken
-        mFSVideoReqData = new FSVideoReqData(videoID, new Definition(Definition.CLARITY_LOW), FunshionConstant.ACCESS_TOKEN);
+        mFSVideoReqData = new FSVideoReqData(code, new Definition(Definition.CLARITY_SUPPER));
         try {
             Log.d(TAG, "request");
-            mFunshionIVideoPlayer.requestAndPrepare(mFSVideoReqData, FunshionConstant.APICODE);
+            mFunshionIVideoPlayer.requestAndPrepare(mFSVideoReqData);
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
-
-    /**
-     * 鎾斁濯掍綋
-     */
-    public synchronized void playMedia(String mediaID, String epso) {
-        createPlayer();
-        if (mVideoPlayer.isPlaying()) {
-            FSLogcat.e(TAG, "Call player to stop");
-            mVideoPlayer.stop();
-            mVideoPlayer.reset();
-        }
-        //锛侊紒锛佹敞鎰忔挱鏀鹃暱鐭棰戞瀯寤虹殑FSVideoReqData鏈夊尯鍒�傜煭瑙嗛娌℃湁epso鍒嗛泦ID銆傞暱瑙嗛鏈夈�傚~鍐欓敊璇皢鏃犳硶姝e父鎾斁
-        //FSVideoReqData鏋勫缓闇�瑕佺殑鏁版嵁闇�瑕佷粠鏈嶅姟鍣ㄨ幏鍙栥�備富瑕佹槸濯掍綋璧勬簮videoID锛氣�淰IDEO_ID鈥漞pso 濯掍綋鍒嗛泦ID 榛樿 娓呮櫚搴︼細new Definition(Definition.CLARITY_LOW) 浠ュ強Accesstoken锛欰ccesstoken
-        mFSVideoReqData = new FSVideoReqData(mediaID, epso, new Definition(Definition.CLARITY_LOW), FunshionConstant.ACCESS_TOKEN);
-        try {
-            Log.d(TAG, "request");
-            mFunshionIVideoPlayer.requestAndPrepare(mFSVideoReqData, FunshionConstant.APICODE);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
 
     public synchronized void stopPlay() {
         if (mVideoPlayer != null && mVideoPlayer.isPlaying()) {
@@ -711,6 +714,11 @@
     FSCallback mFSCall = new FSCallback() {
 
         @Override
+        public void onFailed(com.funshion.playsdk.constant.FSError fsError) {
+            Log.d(TAG, fsError.errorMessage);
+        }
+
+        @Override
         public void onDefinition(List<Definition> definitions, Definition currDefinition) {
             for (Definition definition : definitions) {
                 Log.e("FE", "get Definition " + definition);
@@ -731,11 +739,6 @@
             vdf.setClarity(mCurrDefinition.getStringDefinition());
             vdf.setName(getDefinitionName(mCurrDefinition.getStringDefinition()));
             vpc_funshion.setDefinition(vdfList, vdf);
-        }
-
-        @Override
-        public void onFailed(FSError arg0) {
-            Log.d(TAG, "onFailed" + arg0);
         }
 
         public void onReceiveUrl(String url) {
@@ -936,7 +939,8 @@
             autoReSize(mediaPlayer);
         else
             autoReSize(mVideoPlayer);
-        vpc_funshion.changeOrien(getActivity().getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+        if (getActivity() != null)
+            vpc_funshion.changeOrien(getActivity().getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
     }
 
     //鐢垫睜鐢甸噺鐩戞帶
@@ -972,6 +976,13 @@
 
 
     public void onEventMainThread(FunshionPlayInfo info) {
+        if (VideoUtil.videoEpisodeList == null || VideoUtil.videoEpisodeList.size() == 0) {
+            //鍔犺浇缂撳瓨鍐呭
+            VideoUtil.loadVideoEpisodeListCache(BeibeiVideoApplication.application);
+        }
+        //椋庤瑙嗛鎾斁
+        MobclickAgent.onEventObject(BeibeiVideoApplication.application, "funtv-play", new HashMap<>());
+
         Log.i(TAG, "onEventMainThread:FunshionPlayInfo");
         mCurrentPosition = info.getPosition();
         List<VideoEpisode> episodes = new ArrayList<>();
@@ -987,19 +998,23 @@
             episodes.add(es);
         }
 
-        vpc_funshion.setContentView(fl_container).setVideoInfo(episodes, info.getPosition(), mVideoInfo.getShowType(), "椋庤").setVideoPlayerListener(this).build(getActivity(), FunshionPlayerFragment.this);
-        loadAD(new IADLoadListener() {
-            @Override
-            public void finishAd() {
-                vpc_funshion.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        tv_skip.setVisibility(View.GONE);
-                        adShowFinish(info);
-                    }
-                });
-            }
-        });
+        try {
+            vpc_funshion.setContentView(fl_container).setVideoInfo(episodes, info.getPosition(), mVideoInfo.getShowType(), "椋庤").setVideoPlayerListener(this).build(getActivity(), FunshionPlayerFragment.this);
+            loadAD(new IADLoadListener() {
+                @Override
+                public void finishAd() {
+                    vpc_funshion.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            tv_skip.setVisibility(View.GONE);
+                            adShowFinish(info);
+                        }
+                    });
+                }
+            });
+        } catch (Exception e) {
+            Log.i(TAG, "鍑洪敊浜嗭細" + e.getMessage());
+        }
 
     }
 
@@ -1054,6 +1069,14 @@
         if (mVideoPlayer != null && mVideoPlayer.isPlaying())
             mVideoPlayer.pause();
 
+        //鎾斁缁熻
+        BeibeiVideoAPI.playStatistic(BeibeiVideoApplication.application, mVideoInfo.getId(), videoResource.getId() + "", new BasicTextHttpResponseHandler() {
+            @Override
+            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
+
+            }
+        });
+
         BeibeiVideoAPI.getPlayUrl(BeibeiVideoApplication.application, uid, detailInfo.getType(), mVideoInfo.getId(),
                 detailInfo.getId(), videoResource.getId(), detailInfo.geteId(),
                 new BasicTextHttpResponseHandler() {
@@ -1083,6 +1106,8 @@
                                     .optString("Params"));
                             info.setAid(data.optString("Aid"));
                             info.setVid(data.optString("Vid"));
+                            info.setCode(jsonObject.getJSONObject("Data")
+                                    .optString("Code"));
                             playInfo.setPlayUrl(info);
                             mShowAd = false;
                             EventBus.getDefault().post(playInfo);

--
Gitblit v1.8.0