From cefe2a41db4a275fb1e940a902cb156f1ed68d80 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 12 八月 2020 16:28:46 +0800
Subject: [PATCH] '视频详情全屏视频广告'

---
 BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 154 insertions(+), 18 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java b/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
index 7cd2ef2..b8bfa87 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
@@ -1,15 +1,23 @@
 package com.weikou.beibeivideo.util.ad;
 
+import android.app.Activity;
 import android.content.Context;
+import android.view.View;
+import android.widget.FrameLayout;
 
 import com.bytedance.sdk.openadsdk.AdSlot;
+import com.bytedance.sdk.openadsdk.TTAdDislike;
 import com.bytedance.sdk.openadsdk.TTAdManager;
 import com.bytedance.sdk.openadsdk.TTAdNative;
-import com.bytedance.sdk.openadsdk.TTFeedAd;
+import com.bytedance.sdk.openadsdk.TTNativeExpressAd;
 import com.qq.e.ads.cfg.VideoOption;
 import com.qq.e.ads.nativ.ADSize;
 import com.qq.e.ads.nativ.NativeExpressAD;
 import com.qq.e.ads.nativ.NativeExpressADView;
+import com.qq.e.ads.nativ.express2.AdEventListener;
+import com.qq.e.ads.nativ.express2.NativeExpressAD2;
+import com.qq.e.ads.nativ.express2.NativeExpressADData2;
+import com.qq.e.ads.nativ.express2.VideoOption2;
 import com.qq.e.comm.util.AdError;
 import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
 import com.weikou.beibeivideo.util.BeibeiConstant;
@@ -37,7 +45,7 @@
         if (sourceType == SOURCE_CSJ) {
             TTAdManager ttAdManager = TTAdManagerHolder.get();
             mTTAdNative = ttAdManager.createAdNative(context);
-            TTAdManagerHolder.get().requestPermissionIfNecessary(context);
+//            TTAdManagerHolder.get().requestPermissionIfNecessary(context);
         }
     }
 
@@ -54,23 +62,24 @@
      */
     public void loadAd(int widthDP, int heightDP, String pid, int count, final IAdLoadListener adLoadListener) {
         if (sourceType == SOURCE_GDT) {
-            loadGDT(pid, count, new IGDTAdLoadListener() {
+            loadGDT(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
                 @Override
                 public void onSuccess(List<NativeExpressADView> adList) {
                     List<ExpressAdContainer> adContainerList = new ArrayList<>();
-                    for (NativeExpressADView adView : adList) {
-                        adContainerList.add(new ExpressAdContainer(adView));
-                    }
+                    if (adList != null)
+                        for (NativeExpressADView adView : adList) {
+                            adContainerList.add(new ExpressAdContainer(adView));
+                        }
                     adLoadListener.onSuccess(adContainerList);
                 }
             }, mContext);
         } else if (sourceType == SOURCE_CSJ) {
             loadCSJ(pid, widthDP, heightDP, count, new ICSJAdLoadListener() {
                 @Override
-                public void onSuccess(List<TTFeedAd> adList) {
+                public void onSuccess(List<TTNativeExpressAd> adList) {
                     List<ExpressAdContainer> adContainerList = new ArrayList<>();
                     if (adList != null) {
-                        for (TTFeedAd adView : adList) {
+                        for (TTNativeExpressAd adView : adList) {
                             adContainerList.add(new ExpressAdContainer(adView));
                         }
                     }
@@ -83,13 +92,14 @@
 
     /**
      * 鍔犺浇鎺ㄨ崘澶у浘骞垮憡
+     *
      * @param adLoadListener
      */
     public void loadRecommendLargeAd(final IAdLoadListener adLoadListener) {
         //鍔犺浇澶у浘
         String pid = null;
         if (sourceType == SOURCE_CSJ) {
-            pid = "945375047";
+            pid = "945386135";
         } else if (sourceType == SOURCE_GDT) {
             pid = BeibeiConstant.GDT_RECOMMAND_NATIVE;
         }
@@ -97,12 +107,13 @@
         int deviceWidth = DimenUtils.getScreenWidth(mContext);
         deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
         int width = deviceWidth - 20;
-        int height = (int) (width * 0.625);
+        int height = (int) (width * 0.8);
         loadAd(width, height, pid, 2, adLoadListener);
     }
 
     /**
      * 鍔犺浇鎺ㄨ崘灏忓浘骞垮憡
+     *
      * @param adLoadListener
      */
     public void loadRecommendSmallAd(final IAdLoadListener adLoadListener) {
@@ -117,8 +128,52 @@
         int deviceWidth = DimenUtils.getScreenWidth(mContext);
         deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
         int width = (deviceWidth - 30) / 2;
-        int height = (int) (width * 0.625);
-        loadAd(640, 320, pid, 1, adLoadListener);
+        int height = (int) (width * 0.85);
+        loadAd(width, height, pid, 1, adLoadListener);
+    }
+
+
+    /**
+     * 鍔犺浇鍒嗙被灏忓浘
+     *
+     * @param adLoadListener
+     */
+    public void loadRecommendCategorySmallAd(final IAdLoadListener adLoadListener) {
+        //鍔犺浇澶у浘
+        String pid = null;
+        if (sourceType == SOURCE_CSJ) {
+            pid = "945375047";
+        } else if (sourceType == SOURCE_GDT) {
+            pid = BeibeiConstant.GDT_RECOMMEND_CATEGORY_MIN_NATIVE;
+        }
+        //鑾峰彇灞忓箷鐨勫
+        int deviceWidth = DimenUtils.getScreenWidth(mContext);
+        deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
+        int width = (deviceWidth - 30) / 2;
+        int height = (int) (width * 0.85);
+        loadAd(width, height, pid, 1, adLoadListener);
+    }
+
+
+    /**
+     * 鎼滅储缁撴灉椤靛皬鍥�
+     *
+     * @param adLoadListener
+     */
+    public void loadSearchResultSmallAd(int count, final IAdLoadListener adLoadListener) {
+        //鍔犺浇澶у浘
+        String pid = null;
+        if (sourceType == SOURCE_CSJ) {
+            pid = "945379581";
+        } else if (sourceType == SOURCE_GDT) {
+            pid = BeibeiConstant.GDT_SEARCH_RESULT_MIN_NATIVE;
+        }
+        //鑾峰彇灞忓箷鐨勫
+        int deviceWidth = DimenUtils.getScreenWidth(mContext);
+        deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
+        int width = (deviceWidth - 20);
+        int height = 75;
+        loadAd(width, height, pid, count, adLoadListener);
     }
 
     /**
@@ -129,9 +184,10 @@
      * @param adLoadListener
      * @param context
      */
-    private void loadGDT(String positionId, int count, final IGDTAdLoadListener adLoadListener, Context context) {
+    private void loadGDT(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) {
         NativeExpressAD nativeExpressAD = new NativeExpressAD(context, new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
                 positionId, new NativeExpressAD.NativeExpressADListener() {
+
             @Override
             public void onADLoaded(List<NativeExpressADView> list) {
                 if (adLoadListener != null)
@@ -150,6 +206,7 @@
 
             @Override
             public void onADExposure(NativeExpressADView nativeExpressADView) {
+
             }
 
             @Override
@@ -183,11 +240,11 @@
                     adLoadListener.onSuccess(null);
             }
         }); // 浼犲叆Activity
-        // 娉ㄦ剰锛氬鏋滄偍鍦ㄨ仈鐩熷钩鍙颁笂鏂板缓鍘熺敓妯℃澘骞垮憡浣嶆椂锛岄�夋嫨浜嗘敮鎸佽棰戯紝閭d箞鍙互杩涜涓�у寲璁剧疆锛堝彲閫夛級
         nativeExpressAD.setVideoOption(new VideoOption.Builder()
                 .setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 鐜涓嬪彲浠ヨ嚜鍔ㄦ挱鏀捐棰�
                 .setAutoPlayMuted(true) // 鑷姩鎾斁鏃朵负闈欓煶
                 .build()); //
+        nativeExpressAD.setVideoPlayPolicy(VideoOption.VideoPlayPolicy.AUTO);
         nativeExpressAD.loadAD(count);
     }
 
@@ -205,32 +262,111 @@
         AdSlot adSlot = new AdSlot.Builder()
                 .setCodeId(codeId)
                 .setSupportDeepLink(true)
-                .setImageAcceptedSize(width, height)
+                .setExpressViewAcceptedSize(width, height)
                 .setAdCount(count) //璇锋眰骞垮憡鏁伴噺涓�1鍒�3鏉�
                 .build();
-        mTTAdNative.loadFeedAd(adSlot, new TTAdNative.FeedAdListener() {
+        mTTAdNative.loadNativeExpressAd(adSlot, new TTAdNative.NativeExpressAdListener() {
             @Override
             public void onError(int i, String s) {
                 adLoadListener.onSuccess(null);
             }
 
             @Override
-            public void onFeedAdLoad(List<TTFeedAd> list) {
+            public void onNativeExpressAdLoad(List<TTNativeExpressAd> list) {
                 adLoadListener.onSuccess(list);
             }
         });
     }
+
+
+    /**
+     * 娓叉煋妯℃澘骞垮憡
+     *
+     * @param activity
+     * @param ad
+     * @param fl_ad
+     * @param adEventListener
+     */
+    public static void render(Activity activity, final ExpressAdContainer ad, final FrameLayout fl_ad, final IAdEventListener adEventListener) {
+        fl_ad.removeAllViews();
+        if (ad == null) {//骞垮憡涓虹┖
+            fl_ad.setVisibility(View.GONE);
+        } else {
+            fl_ad.setVisibility(View.VISIBLE);
+            if (ad.getGdt() != null) {
+//                ad.getGdt().setAdEventListener(new AdEventListener() {
+//                    @Override
+//                    public void onClick() {
+//
+//                    }
+//
+//                    @Override
+//                    public void onExposed() {
+//
+//                    }
+//
+//                    @Override
+//                    public void onRenderSuccess() {
+//                        fl_ad.addView(ad.getGdt().getAdView());
+//                    }
+//
+//                    @Override
+//                    public void onRenderFail() {
+//
+//                    }
+//
+//                    @Override
+//                    public void onAdClosed() {
+//                        if (adEventListener != null) {
+//                            adEventListener.closeAd();
+//                        }
+//                    }
+//                });
+                ad.getGdt().render();
+                fl_ad.addView(ad.getGdt());
+
+            } else if (ad.getCsj() != null) {
+                ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() {
+
+                    @Override
+                    public void onSelected(int i, String s) {
+                        if (adEventListener != null) {
+                            adEventListener.closeAd();
+                        }
+                    }
+
+                    @Override
+                    public void onCancel() {
+
+                    }
+
+                    @Override
+                    public void onRefuse() {
+
+                    }
+                });
+                ad.getCsj().render();
+                fl_ad.addView(ad.getCsj().getExpressAdView());
+            }
+        }
+
+    }
+
 
     interface IGDTAdLoadListener {
         public void onSuccess(List<NativeExpressADView> adList);
     }
 
     interface ICSJAdLoadListener {
-        public void onSuccess(List<TTFeedAd> adList);
+        public void onSuccess(List<TTNativeExpressAd> adList);
     }
 
 
     public interface IAdLoadListener {
         public void onSuccess(List<ExpressAdContainer> adList);
     }
+
+    public interface IAdEventListener {
+        public void closeAd();
+    }
 }

--
Gitblit v1.8.0