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