admin
2023-11-21 2eec3de87b6b616a69a46c1f97c2397159031d2f
BuWanVideo/src/com/weikou/beibeivideo/util/ad/RewardVideoAdManager.java
@@ -2,43 +2,20 @@
import android.app.Activity;
import android.content.Context;
import android.os.SystemClock;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.Toast;
import com.bytedance.sdk.openadsdk.AdSlot;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.TTAdDislike;
import com.bytedance.sdk.openadsdk.TTAdManager;
import com.bytedance.sdk.openadsdk.TTAdNative;
import com.bytedance.sdk.openadsdk.TTNativeExpressAd;
import com.bytedance.sdk.openadsdk.TTRewardVideoAd;
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.ads.rewardvideo.RewardVideoAD;
import com.qq.e.ads.rewardvideo.RewardVideoADListener;
import com.qq.e.ads.rewardvideo2.ExpressRewardVideoAD;
import com.qq.e.ads.rewardvideo2.ExpressRewardVideoAdListener;
import com.qq.e.comm.util.AdError;
import com.qq.e.comm.util.VideoAdValidity;
import com.ut.device.UTDevice;
import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
import com.weikou.beibeivideo.entity.ad.RewardVideoAdContainer;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.DimenUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * 激励视频广告管理
@@ -58,8 +35,14 @@
        sourceType = adSource;
        this.mContext = context;
        if (sourceType == AdUtil.AD_TYPE.csj) {
            TTAdManager ttAdManager = TTAdManagerHolder.get();
            mTTAdNative = ttAdManager.createAdNative(context);
            TTAdManager ttAdManager = null;
            try {
                ttAdManager = TTAdManagerHolder.get();
                mTTAdNative = ttAdManager.createAdNative(context);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
@@ -87,19 +70,6 @@
                    adLoadListener.onError(msg);
                }
            });
        } else if (sourceType == AdUtil.AD_TYPE.gdt2) {
            loadGdt2(pid, new IGDT2AdLoadListener() {
                @Override
                public void onSuccess(ExpressRewardVideoAD rewardVideoAD) {
                    adLoadListener.onSuccess(new RewardVideoAdContainer(rewardVideoAD));
                }
                @Override
                public void onError(String msg) {
                    adLoadListener.onError(msg);
                }
            }, showListener);
        }
    }
@@ -124,6 +94,11 @@
                .setExpressViewAcceptedSize(width, height)
                .setOrientation(hrizontal ? TTAdConstant.HORIZONTAL : TTAdConstant.VERTICAL)
                .build();
        if (mTTAdNative == null) {
            if (adLoadListener != null)
                adLoadListener.onError("mTTAdNative为空");
            return;
        }
        mTTAdNative.loadRewardVideoAd(adSlot, new TTAdNative.RewardVideoAdListener() {
            //请求广告失败
            @Override
@@ -137,6 +112,11 @@
                adLoadListener.onSuccess(mTTRewardVideoAd);
            }
            @Override
            public void onRewardVideoCached(TTRewardVideoAd ttRewardVideoAd) {
                adLoadListener.onSuccess(mTTRewardVideoAd);
            }
            //视频广告的素材加载完毕,比如视频url等,在此回调后,可以播放在线视频,网络不好可能出现加载缓冲,影响体验。
            @Override
            public void onRewardVideoAdLoad(TTRewardVideoAd ad) {
@@ -144,66 +124,6 @@
            }
        });
    }
    private ExpressRewardVideoAD rewardVideoAD = null;
    private void loadGdt2(String pid, IGDT2AdLoadListener adLoadListener, IAdShowListener adShowListener) {
        //广点通
        rewardVideoAD = new ExpressRewardVideoAD(mContext, pid, new ExpressRewardVideoAdListener() {
            @Override
            public void onAdLoaded() {
                Log.i(TAG, "onAdLoaded");
            }
            @Override
            public void onVideoCached() {
                Log.i(TAG, "onVideoCached");
                adLoadListener.onSuccess(rewardVideoAD);
            }
            @Override
            public void onShow() {
                Log.i(TAG, "onShow");
                adShowListener.onShow();
            }
            @Override
            public void onExpose() {
                Log.i(TAG, "onExpose");
            }
            @Override
            public void onReward(Map<String, Object> map) {
                Log.i(TAG, "onReward");
                adShowListener.onReward();
            }
            @Override
            public void onClick() {
                Log.i(TAG, "onClick");
            }
            @Override
            public void onVideoComplete() {
                Log.i(TAG, "onVideoComplete");
            }
            @Override
            public void onClose() {
                Log.i(TAG, "onClose");
                adShowListener.onClose();
            }
            @Override
            public void onError(AdError adError) {
                Log.i(TAG, "onError:" + adError.getErrorMsg());
                adLoadListener.onError(adError.getErrorMsg());
            }
        });
        rewardVideoAD.loadAD();
    }
    /**
     * 渲染模板和填充广告
@@ -269,6 +189,11 @@
                    }
                }
                @Override
                public void onRewardArrived(boolean b, int i, Bundle bundle) {
                }
                //跳过视频播放回调
                @Override
                public void onSkippedVideo() {
@@ -277,29 +202,6 @@
            });
            ad.getCsj().showRewardVideoAd(activity, TTAdConstant.RitScenes.CUSTOMIZE_SCENES, "scenes_test");
            ad.setCsj(null);
        } else if (ad.getGdt2() != null) {
            // 展示广告
            VideoAdValidity validity = ad.getGdt2().checkValidity();
            switch (validity) {
                case SHOWED:
                    if (showListener != null)
                        showListener.onError("广告已经展示过!");
                    return;
                // 在视频缓存成功后展示,以省去用户的等待时间,提升用户体验
                case NONE_CACHE:
                    if (showListener != null)
                        showListener.onError("广告素材未缓存成功!");
                    return;
                case OVERDUE:
                    if (showListener != null)
                        showListener.onError("广告已经过期!");
                    return;
                case VALID:
                    // 有效广告
                    break;
            }
            // 在视频缓存成功后展示,以省去用户的等待时间,提升用户体验
            ad.getGdt2().showAD(null);
        }
    }
@@ -307,18 +209,10 @@
    interface IGDTAdLoadListener {
        public void onSuccess(List<NativeExpressADView> adList);
        public void onSuccess2(List<NativeExpressADData2> adList);
    }
    interface ICSJAdLoadListener {
        public void onSuccess(TTRewardVideoAd ad);
        public void onError(String msg);
    }
    interface IGDT2AdLoadListener {
        public void onSuccess(ExpressRewardVideoAD rewardVideoAD);
        public void onError(String msg);
    }