package com.letv.ads.http; import java.util.ArrayList; import android.content.Context; import android.text.TextUtils; import com.letv.adlib.managers.debugger.ARKDebugManager; import com.letv.adlib.managers.status.ad.AdStatusManager; import com.letv.adlib.managers.status.ad.IPlayerStatusDelegate; import com.letv.adlib.model.ad.common.AdInfo; import com.letv.adlib.model.ad.common.CommonAdItem; import com.letv.adlib.model.ad.types.LetvVideoAdZoneType; import com.letv.adlib.model.ad.types.UserLogErrorType; import com.letv.adlib.model.request.SimpleAdReqParams; import com.letv.adlib.model.services.CommonAdDataService; import com.letv.adlib.model.video.MobileAppClientInfo; import com.letv.ads.util.ClientInfoUtil; import com.letv.ads.util.LogInfo; public class AdsHttpApi { /** * 调用方舟SDK得到广告,同步耗时 * */ private static ArrayList<CommonAdItem> getAd(SimpleAdReqParams reqParam) { if (reqParam == null || reqParam.clientInfo == null || TextUtils.isEmpty(reqParam.azType)) { ARKDebugManager.showArkErrorInfo("广告参数异常", null); return null; } ArrayList<CommonAdItem> adInfos = null; try { adInfos = new CommonAdDataService().getAdData(reqParam); } catch (Exception e) { ARKDebugManager.showArkErrorInfo("获取广告数据出错", e); } return adInfos; } /** * 请求前贴专用 调用方舟SDK得到广告,同步耗时 * */ private static AdInfo getFrontAd(SimpleAdReqParams reqParam) { if (reqParam == null || reqParam.clientInfo == null || TextUtils.isEmpty(reqParam.azType)) { ARKDebugManager.showArkErrorInfo("广告参数异常", null); return null; } AdInfo adWithInformer = null; try { adWithInformer = new CommonAdDataService().getAdWithInformer(reqParam); } catch (Exception e) { ARKDebugManager.showArkErrorInfo("获取广告数据出错", e); } return adWithInformer; } /** * 请求前贴片广告 */ public static ArrayList<CommonAdItem> getFrontAd(Context context, String cid, String pid, String vid , String mmsid , String uuid , String uid , String vlen , String py , String ty , IPlayerStatusDelegate iPlayerStatusDelegate) { MobileAppClientInfo clientInfo = ClientInfoUtil.getVideoPlayerInfo(context, cid, pid, vid, mmsid, uuid, uid, vlen, py , ty , iPlayerStatusDelegate); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.azType = LetvVideoAdZoneType.PREROLL.value();// 前帖片 return getAd(reqParam); } /** * modified by zengsonghai 20140304 * 请求多个前贴片广告 needMultiPreRoll 是:true 否:false; */ public static AdInfo getFrontAd(Context context, String cid, String pid, String vid , String mmsid , String uuid , String uid , String vlen , String py , String ty , IPlayerStatusDelegate iPlayerStatusDelegate, boolean needMultiPreRoll, boolean isVipVideo, boolean disableAvd) { // vid = "letvtest01"; // pid = "group_1"; MobileAppClientInfo clientInfo = ClientInfoUtil.getVideoPlayerInfo(context, cid, pid, vid, mmsid, uuid, uid, vlen, py , ty , iPlayerStatusDelegate, isVipVideo); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.disableAVD = disableAvd;//AVD开关 reqParam.azType = LetvVideoAdZoneType.PREROLL.value();// 前帖片 reqParam.needMultiPreRoll = needMultiPreRoll; return getFrontAd(reqParam); } /** * 上报付费影片广告? * @param context * @param cid * @param pid * @param vid * @param mmsid * @param uuid * @param uid * @param vlen * @param py * @param ty * @param iPlayerStatusDelegate * @param needMultiPreRoll * @param isVipVideo * @param disableAvd */ public static void getFrontVipAd(Context context, String cid, String pid, String vid , String mmsid , String uuid , String uid , String vlen , String py , String ty , IPlayerStatusDelegate iPlayerStatusDelegate, boolean needMultiPreRoll, boolean isVipVideo, boolean disableAvd) { MobileAppClientInfo clientInfo = ClientInfoUtil.getVideoPlayerInfo(context, cid, pid, vid, mmsid, uuid, uid, vlen, py , ty , iPlayerStatusDelegate, isVipVideo); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.disableAVD = disableAvd;//AVD开关 reqParam.azType = LetvVideoAdZoneType.PREROLL.value();// 前帖片 reqParam.needMultiPreRoll = needMultiPreRoll; AdStatusManager adStatusManager = new AdStatusManager(clientInfo, "2"); adStatusManager.OnAcComplate(UserLogErrorType.NO_AD); } /** * 请求直播前贴片广告 */ public static ArrayList<CommonAdItem> getLiveFrontAd(Context context, String streamUrl , String uuid , String uid , String py, String ty ,IPlayerStatusDelegate iPlayerStatusDelegate) { MobileAppClientInfo clientInfo = ClientInfoUtil.getLivePlayerInfo(context, streamUrl , uuid, uid , ty ,iPlayerStatusDelegate); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.azType = LetvVideoAdZoneType.PREROLL.value();// 前贴片 return getAd(reqParam); } /** * 请求直播前贴片广告 */ public static ArrayList<CommonAdItem> getLiveFrontAd(Context context, String streamUrl , String uuid , String uid , String py, String ty ,IPlayerStatusDelegate iPlayerStatusDelegate, boolean needMultiPreRoll) { MobileAppClientInfo clientInfo = ClientInfoUtil.getLivePlayerInfo(context, streamUrl , uuid, uid , ty ,iPlayerStatusDelegate); LogInfo.log("songAds", "context=" + context + "clientInfo=" + clientInfo); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.azType = LetvVideoAdZoneType.PREROLL.value();// 前贴片 reqParam.needMultiPreRoll = needMultiPreRoll; return getAd(reqParam); } /** * 请求暂停广告 */ public static ArrayList<CommonAdItem> getPauseAd(Context context, String cid, String pid, String vid , String mmsid , String uuid , String uid , String vlen , String py , String ty , IPlayerStatusDelegate iPlayerStatusDelegate) { MobileAppClientInfo clientInfo = ClientInfoUtil.getVideoPlayerInfo(context, cid, pid, vid, mmsid, uuid, uid, vlen, py , ty , iPlayerStatusDelegate); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.azType = LetvVideoAdZoneType.PAUSE.value();// 暂停 return getAd(reqParam); } /** * 请求移动端开机启动图广告 */ public static ArrayList<CommonAdItem> getBeginImgAd(Context context) { MobileAppClientInfo clientInfo = ClientInfoUtil.getBeginInfo(context); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.azType = LetvVideoAdZoneType.SPLASH_SCREEN.value();// 开机启动图 return getAd(reqParam); } /** * 请求移动端焦点图第三帧广告 */ public static ArrayList<CommonAdItem> getFocusImgAd(Context context) { MobileAppClientInfo clientInfo = ClientInfoUtil.getFocusInfo(context); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.azType = LetvVideoAdZoneType.FOCUS.value();// 焦点图 return getAd(reqParam); } /** * 请求移动端详情页顶部banner广告 */ public static ArrayList<CommonAdItem> getTopBannerAd(Context context, String cid, String pid) { MobileAppClientInfo clientInfo = ClientInfoUtil.getBannerInfo(context , cid , pid); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; reqParam.azType = LetvVideoAdZoneType.BANNER.value();// banner广告 return getAd(reqParam); } /** * 请求搜索框广告 */ public static ArrayList<CommonAdItem> getSearchKeyWord(Context context) { MobileAppClientInfo clientInfo = ClientInfoUtil.getFocusInfo(context); SimpleAdReqParams reqParam = new SimpleAdReqParams(); reqParam.clientInfo = clientInfo; //搜索框关键词广告 reqParam.azType = LetvVideoAdZoneType.KEYWORD.value(); return getAd(reqParam); } }