package com.demo.library_ad; import android.app.Activity; import android.util.Log; import com.bytedance.sdk.openadsdk.AdSlot; import com.bytedance.sdk.openadsdk.TTAdConstant; import com.bytedance.sdk.openadsdk.TTAdManager; import com.bytedance.sdk.openadsdk.TTAdNative; import com.bytedance.sdk.openadsdk.TTFullScreenVideoAd; import com.demo.lib.common.util.common.DimenUtils; import com.qq.e.ads.cfg.VideoOption; import com.qq.e.ads.interstitial2.UnifiedInterstitialAD; import com.qq.e.ads.interstitial2.UnifiedInterstitialADListener; import com.qq.e.comm.util.AdError; public class FullVideoAdManager { private TTAdNative mTTAdNative = null; private TTFullScreenVideoAd mttFullVideoAd; private static FullVideoAdManager fullVideoAdManager; public static FullVideoAdManager getInstance() { if (fullVideoAdManager == null) fullVideoAdManager = new FullVideoAdManager(); return fullVideoAdManager; } public void loadAd(final Activity context, AdUtil.AD_TYPE adType, String pid, final IFullVideoAdListener adListener) { if (adType == AdUtil.AD_TYPE.csj) { showCSJ(context, pid, adListener); } else { showGdt(context, pid, adListener); } } private void showCSJ(Activity activity, String pid, final IFullVideoAdListener adListener) { int w = DimenUtils.getScreenWidth(activity); int h = DimenUtils.getScreenHeight(activity); AdSlot adSlot = new AdSlot.Builder() .setCodeId(pid) .setSupportDeepLink(true) .setExpressViewAcceptedSize(w, h) .setOrientation(TTAdConstant.VERTICAL) .build(); TTAdManager ttAdManager = null; try { ttAdManager = TTAdManagerHolder.get(); } catch (Exception e) { e.printStackTrace(); } if (ttAdManager == null) { return; } mTTAdNative = ttAdManager.createAdNative(activity); //加载全屏视频 mTTAdNative.loadFullScreenVideoAd(adSlot, new TTAdNative.FullScreenVideoAdListener() { @Override public void onError(int code, String message) { adListener.onFail(message); } @Override public void onFullScreenVideoAdLoad(TTFullScreenVideoAd ad) { mttFullVideoAd = ad; mttFullVideoAd.setFullScreenVideoAdInteractionListener(new TTFullScreenVideoAd.FullScreenVideoAdInteractionListener() { @Override public void onAdShow() { } @Override public void onAdVideoBarClick() { } @Override public void onAdClose() { adListener.onFinish(); } @Override public void onVideoComplete() { } @Override public void onSkippedVideo() { } }); } @Override public void onFullScreenVideoCached() { } @Override public void onFullScreenVideoCached(TTFullScreenVideoAd ttFullScreenVideoAd) { ttFullScreenVideoAd.showFullScreenVideoAd(activity); } }); } private UnifiedInterstitialAD iad; private void showGdt(Activity activity, String pid, IFullVideoAdListener adListener) { iad = new UnifiedInterstitialAD(activity, pid, new UnifiedInterstitialADListener() { @Override public void onADReceive() { iad.showFullScreenAD(activity); } @Override public void onVideoCached() { } @Override public void onNoAD(AdError adError) { Log.i("gdt", adError.toString()); adListener.onFail("no ad"); } @Override public void onADOpened() { } @Override public void onADExposure() { } @Override public void onADClicked() { } @Override public void onADLeftApplication() { } @Override public void onADClosed() { adListener.onFinish(); } @Override public void onRenderSuccess() { } @Override public void onRenderFail() { } }); VideoOption.Builder builder = new VideoOption.Builder(); VideoOption option = builder.setAutoPlayMuted(true) .setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI).build(); iad.setVideoOption(option); iad.loadFullScreenAD(); } public interface IFullVideoAdListener { void onFail(String msg); void onFinish(); } }