From 8039a1b2fbfa3471b6f726d3e839d7867c81a84f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 10 十月 2020 18:51:24 +0800
Subject: [PATCH] 资讯与小说集成

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/ad/PlayVideoPreADFragment.java |  157 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 135 insertions(+), 22 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/ad/VideoDetailVideoAdFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/ad/PlayVideoPreADFragment.java
similarity index 76%
rename from BuWanVideo/src/com/weikou/beibeivideo/ui/ad/VideoDetailVideoAdFragment.java
rename to BuWanVideo/src/com/weikou/beibeivideo/ui/ad/PlayVideoPreADFragment.java
index 5122282..98a6376 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/ad/VideoDetailVideoAdFragment.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/ad/PlayVideoPreADFragment.java
@@ -11,10 +11,15 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import com.bytedance.sdk.openadsdk.AdSlot;
+import com.bytedance.sdk.openadsdk.TTAdManager;
+import com.bytedance.sdk.openadsdk.TTAdNative;
+import com.bytedance.sdk.openadsdk.TTSplashAd;
 import com.qq.e.ads.cfg.VideoOption;
 import com.qq.e.ads.nativ.MediaView;
 import com.qq.e.ads.nativ.NativeADEventListener;
@@ -27,26 +32,34 @@
 import com.qq.e.comm.constants.AdPatternType;
 import com.qq.e.comm.util.AdError;
 import com.weikou.beibeivideo.R;
+import com.weikou.beibeivideo.entity.ad.PlayVideoPreADSetting;
 import com.weikou.beibeivideo.util.BeibeiConstant;
+import com.weikou.beibeivideo.util.DimenUtils;
 import com.weikou.beibeivideo.util.ad.AdUtil;
+import com.weikou.beibeivideo.util.ad.CSJConstant;
 import com.weikou.beibeivideo.util.ad.GDTConstant;
+import com.weikou.beibeivideo.util.ad.TTAdManagerHolder;
 import com.weikou.beibeivideo.util.ui.IPageEventListener;
 
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 
-public class VideoDetailVideoAdFragment extends Fragment implements View.OnClickListener {
+/**
+ * 瑙嗛鎾斁鍓嶈创骞垮憡
+ */
+public class PlayVideoPreADFragment extends Fragment implements View.OnClickListener {
 
-    private final static String TAG = "VideoDetailVideoAdFragment";
-
-
+    private final static String TAG = PlayVideoPreADFragment.class.getName();
 
     private MediaView mediaView;
 
     private NativeAdContainer mContainer;
 
-    private NativeUnifiedADData mAdData;
+    //绌垮北鐢插箍鍛�
+    private FrameLayout fl_ad;
+
+    private NativeUnifiedADData mGDTAdData;
 
     private TextView tv_skip;
 
@@ -54,12 +67,21 @@
 
     private IPageEventListener pageEventListener;
 
+    public static PlayVideoPreADFragment newInstance() {
+        Bundle bundle = new Bundle();
+
+        PlayVideoPreADFragment fragment = new PlayVideoPreADFragment();
+        fragment.setArguments(bundle);
+        return fragment;
+    }
+
     public void setPageEventListener(IPageEventListener pageEventListener) {
         this.pageEventListener = pageEventListener;
     }
 
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
+        Log.i(TAG, "onCreate");
         super.onCreate(savedInstanceState);
     }
 
@@ -71,11 +93,14 @@
         img_poster = root.findViewById(R.id.img_poster);
         tv_skip = root.findViewById(R.id.tv_skip);
         pb_progress = root.findViewById(R.id.pb_progress);
+        fl_ad = root.findViewById(R.id.fl_ad);
     }
 
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+
+
         View root = LayoutInflater.from(getContext()).inflate(R.layout.item_video_detail_ad, null);
         initView(root);
         tv_skip.setOnClickListener(this);
@@ -93,8 +118,8 @@
             timer = new Runnable() {
                 @Override
                 public void run() {
-                    if (remainTime - (mAdData.getVideoCurrentPosition() / 1000) > 0) {
-                        tv_skip.setText((remainTime - (mAdData.getVideoCurrentPosition() / 1000)) + "s鍚庡彲璺宠繃");
+                    if (remainTime - (mGDTAdData.getVideoCurrentPosition() / 1000) > 0) {
+                        tv_skip.setText((remainTime - (mGDTAdData.getVideoCurrentPosition() / 1000)) + "s鍚庡彲璺宠繃");
                         tv_skip.setClickable(false);
                     } else {
                         tv_skip.setText("璺宠繃");
@@ -116,22 +141,108 @@
     Runnable playErrorRunnable = null;
 
     public void loadVideoAD(final IVideoAdListener videoAdListener) {
+        loadVideoAD(videoAdListener, null);
+    }
+
+    public void loadVideoAD(IVideoAdListener videoAdListener, PlayVideoPreADSetting setting) {
+        if (setting == null)
+            setting = PlayVideoPreADSetting.PlayVideoPreADSettingFactory.createDefault();
         tv_skip.setVisibility(View.GONE);
-        if (mAdData != null)
-            mAdData.destroy();
+        if (mGDTAdData != null)
+            mGDTAdData.destroy();
         pb_progress.setVisibility(View.VISIBLE);
-        String pid = GDTConstant.PID_VIDEO_DETAIL_PLAYER;
+        String pid = setting.getGdtPid();
+        //TODO 闇�瑕佸崟鐙垽鏂�
         if (AdUtil.getAdType(getContext(), AdUtil.POSITION_VIDEO_PLAY_PRE) != AdUtil.AD_TYPE.gdt)
             pid = BeibeiConstant.GDT_DOWNLOAD_HINT_ID;
 
-        NativeUnifiedAD mAdManager = new NativeUnifiedAD(getContext(), pid, new NativeADUnifiedListener() {
+//        loadCSJ(CSJConstant.PLAY_VIDEO_PRE, videoAdListener);
+        loadGDT(setting.getGdtAppId(), pid, videoAdListener);
+    }
+
+
+    /**
+     * 鍔犺浇绌垮北鐢插箍鍛�
+     *
+     * @param code
+     * @param videoAdListener
+     */
+    private void loadCSJ(String code, IVideoAdListener videoAdListener) {
+
+        fl_ad.setVisibility(View.VISIBLE);
+        mContainer.setVisibility(View.GONE);
+
+        TTAdManager ttAdManager = TTAdManagerHolder.get();
+        TTAdNative mTTAdNative = ttAdManager.createAdNative(getContext());
+        int width = DimenUtils.getScreenWidth(getContext());
+        int height = width * 9 / 16;
+
+        AdSlot adSlot = new AdSlot.Builder()
+                .setCodeId(code)
+                .setSupportDeepLink(true)
+                .setImageAcceptedSize(width, height)
+                .build();
+
+        mTTAdNative.loadSplashAd(adSlot, new TTAdNative.SplashAdListener() {
+            @Override
+            public void onError(int i, String s) {
+                videoAdListener.noAd();
+            }
+
+            @Override
+            public void onTimeout() {
+                videoAdListener.noAd();
+            }
+
+            @Override
+            public void onSplashAdLoad(TTSplashAd ad) {
+                fl_ad.removeAllViews();
+                fl_ad.addView(ad.getSplashView());
+                ad.setSplashInteractionListener(new TTSplashAd.AdInteractionListener() {
+                    @Override
+                    public void onAdClicked(View view, int i) {
+
+                    }
+
+                    @Override
+                    public void onAdShow(View view, int i) {
+                        Log.i(TAG, "onAdShow");
+                    }
+
+                    @Override
+                    public void onAdSkip() {
+                        videoAdListener.finishPlay();
+                    }
+
+                    @Override
+                    public void onAdTimeOver() {
+                        videoAdListener.finishPlay();
+                    }
+                });
+
+
+            }
+        });
+    }
+
+    /**
+     * 鍔犺浇骞跨偣閫氬箍鍛�
+     *
+     * @param appId
+     * @param pid
+     * @param videoAdListener
+     */
+    private void loadGDT(String appId, String pid, IVideoAdListener videoAdListener) {
+        fl_ad.setVisibility(View.GONE);
+        mContainer.setVisibility(View.VISIBLE);
+        NativeUnifiedAD mAdManager = new NativeUnifiedAD(getContext(), appId, pid, new NativeADUnifiedListener() {
 
             @Override
             public void onNoAD(AdError adError) {//娌℃湁骞垮憡
                 System.out.println(adError);
                 pb_progress.setVisibility(View.GONE);
                 if (videoAdListener != null) {
-                    videoAdListener.finishPlay();
+                    videoAdListener.noAd();
                 }
             }
 
@@ -140,7 +251,7 @@
                 System.out.println(list);
                 final NativeUnifiedADData ad = list.get(0);
                 //濉厖鍐呭
-                mAdData = ad;
+                mGDTAdData = ad;
                 List<View> clickableViews = new ArrayList<>();
 
                 ad.bindAdToView(getContext(), mContainer, null, clickableViews);
@@ -152,7 +263,7 @@
                             @Override
                             public void run() {
                                 if (pb_progress.getVisibility() == View.VISIBLE) {
-                                    mAdData.destroy();
+                                    mGDTAdData.destroy();
                                     if (videoAdListener != null) {
                                         videoAdListener.finishPlay();
                                     }
@@ -284,7 +395,7 @@
                 } else {
                     pb_progress.setVisibility(View.GONE);
                     if (videoAdListener != null) {
-                        videoAdListener.finishPlay();
+                        videoAdListener.noAd();
                     }
                 }
             }
@@ -297,14 +408,13 @@
         tv_skip.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                if (mAdData != null)
-                    mAdData.stopVideo();
+                if (mGDTAdData != null)
+                    mGDTAdData.stopVideo();
                 if (videoAdListener != null)
                     videoAdListener.finishPlay();
                 tv_skip.setVisibility(View.GONE);
             }
         });
-
     }
 
 
@@ -360,18 +470,18 @@
     public void onResume() {
         Log.i(TAG, "onResume");
         super.onResume();
-        if (mAdData != null) {
+        if (mGDTAdData != null) {
             // 蹇呴』瑕佸湪Activity.onResume()鏃堕�氱煡鍒板箍鍛婃暟鎹紝浠ヤ究閲嶇疆骞垮憡鎭㈠鐘舵��
-            mAdData.resume();
+            mGDTAdData.resume();
         }
     }
 
     @Override
     public void onDestroy() {
         super.onDestroy();
-        if (mAdData != null) {
+        if (mGDTAdData != null) {
             // 蹇呴』瑕佸湪Actiivty.destroy()鏃堕�氱煡鍒板箍鍛婃暟鎹紝浠ヤ究閲婃斁鍐呭瓨
-            mAdData.destroy();
+            mGDTAdData.destroy();
         }
         if (img_poster != null && timer != null)
             img_poster.removeCallbacks(timer);
@@ -399,6 +509,9 @@
         //缁撴潫鎾斁
         public void finishPlay();
 
+        //娌℃湁骞垮憡濉厖
+        public void noAd();
+
         //寮�濮嬫挱鏀�
         public void startPlay();
 

--
Gitblit v1.8.0