BBASMRewardVideoAdInner.h 5.71 KB
//
//  BBASMRewardVideoAdInner.h
//  SWANAd
//
//  Created by Bao,Shiwei on 2019/3/4.
//  Copyright © 2019年 Baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BBASMRewardAdRequest.h"
#import "BBASMGDTRewardAdRequest.h"
#import "BBASMRewardedVideoInnerProtocol.h"
#import "BBASMGameAdLogProtocol.h"
#import "BBASMAdVideoProtocol.h"
#import "BBASMAdVideoHandlerDelegate.h"
/**
 * 广告状态标识
 */
typedef NS_ENUM(NSInteger, IAdLiCycle_TYPE) {
    /**
     * 广告初始化状态
     */
    AD_STATE_INIT = 0,
    /**
     * 广告开始请求
     */
    AD_REQUEST_START,
    /**
     * 广告请求成功
     */
    AD_REQUEST_SUCCESS,
    /**
     * 广告请求失败
     */
    AD_REQUEST_FAILURE,
    /**
     * 广告准备展示
     */
    AD_SHOW_START,
    /**
     * 广告正在展示过程中
     */
    AD_SHOW_ING,
    /**
     * 广告播放完成
     */
    AD_SHOW_COMPLETE,
    /**
     * 广告被关闭
     */
    AD_SHOW_CLOSE,
    /**
     * 广告展示失败
     */
    AD_SHOW_ERROR,
    /**
     * 广告组件正在添加
     */
    AD_VIEW_ADDED,
    /**
     * 广告无物料
     */
    AD_NO_ADDATA,
};

@interface BBASMRewardVideoAdInner : NSObject

/// 广告位ID
@property (nonatomic, copy) NSString *adUnitId;
/// 游戏Id
@property (nonatomic, copy) NSString *appId;
/// 媒体Id
@property (nonatomic, copy) NSString *appSid;
/// 请求对象
@property (nonatomic, strong) BBASMRewardAdRequest *request;
/// 游戏是否是前台
@property (nonatomic) BOOL active;
/// 横竖屏
@property (nonatomic) BOOL isLandscape;
/// appkey(上报和mssp校验)
@property (nonatomic, copy) NSString *appkey;
/// 场景值(区分小游戏实体)
@property (nonatomic, copy) NSString *scene;
/// baiduid
@property (nonatomic, copy) NSString *baiduid;
/// cuid
@property (nonatomic, copy) NSString *cuid;
/// 宿主版本
@property (nonatomic, copy) NSString *version;
/// 操作系统
@property (nonatomic, copy) NSString *os;
/// 机型
@property (nonatomic, copy) NSString *devType;
/// 网络状态
@property (nonatomic, copy) NSString *net;
/// 广告状态
@property (nonatomic, assign) IAdLiCycle_TYPE sAdState;
/// 主要回调代理,负责执行回调
@property (nonatomic, weak) id<BBASMRewardedVideoInnerProtocol> delegate;
/// 广告打点log代理
@property (nonatomic, weak) id<BBASMGameAdLogProtocol> logDelegate;
/// 错误码
@property (nonatomic, strong) NSString *errorCode;
/// 广告信息
@property (nonatomic, copy) NSDictionary *adInfo;
/// 用户隐私授权状态
@property (nonatomic, strong) NSString *pa;

/**
 * @brief 初始化单例方法
 *
 * @param adUnitId 广告位Id
 * @param appSid 媒体Id
 * @param appId 游戏Id
 * @param appData app信息
 * @param gdtData GDT广告后台数据(11.23)
 * @return 绑定对象
 */
- (instancetype)initWithAdUnitId:(NSString *)adUnitId
                          appSid:(NSString *)appSid
                           appID:(NSString *)appId
                         appData:(NSDictionary *)appData
                     logDelegate:(id<BBASMGameAdLogProtocol>)logDelegate
                         gdtData:(NSDictionary *)gdtData;


/**
 * @brief 初始化单例方法
 *
 * @param adUnitId 广告位Id
 * @param appSid 媒体Id
 * @param appId 游戏Id
 * @param appData app信息
 * @return 绑定对象
 */
- (instancetype)initWithAdUnitId:(NSString *)adUnitId
                          appSid:(NSString *)appSid
                           appID:(NSString *)appId
                         appData:(NSDictionary *)appData;

/**
 * @brief 请求广告
 *
 */
- (void)load;

/**
 * @brief 展现广告
 *
 */
- (void)showWithView;

/**
 * @brief 其他组件更新状态
 *
 * @param type 广告状态
 */
- (void)setStatus:(IAdLiCycle_TYPE)type;

/**
 * @brief 广告是否过期
 *
 * @return YES/NO
 */
- (BOOL)isExpired;

/**
 * @brief 视频URL(用于初始化播放器组件)
 *
 * @return url
 */
- (NSString *)getVideoURL;

/**
* @brief 广告是否强制竖屏
*
* @return YES/NO
*/
- (BOOL)shouldForcePortrait;

/**
 * @brief 激励视频正常关闭
 *
 */
- (void)setVideoEnd;

/**
 * @brief 激励视频跳过
 *
 */
- (void)setVideoSkip;

/**
 * @brief 播放结束
 *
 */
- (void)playerDidEnd;

/**
 * @brief 视频播放
 *
 */
- (void)playerDidPlay;

/**
 * @brief 视频暂停
 *
 * @param over 是否暂停
 * @param time 当前播放时间
 */
- (void)playerDidPause:(BOOL)over time:(NSTimeInterval)time;

/**
 * @brief 播放器代理 更新左上角进度
 *
 * @param currentTime 当前时间
 * @param duration 总时长
 */
- (void)videoPlayerUpdateTimeProgress:(double)currentTime
                             duration:(double)duration;

/**
 * @brief 播放器启动通知
 *
 * @param over 结束
 */
- (void)playerDidPlaySuccess:(BOOL)over;

/**
 * @brief 播放器失败
 *
 */
- (void)playerDidFailed;

/**
 * @brief 是否是GDT激励视频广告
 *
 * @return BOOL
*/
- (BOOL)isGDTAd;

- (void)initVideoWithAppId:(NSString *)appId
       shouldForcePortrait:(BOOL)shouldForcePortrait
             videoDelegate:(id<BBASMAdVideoProtocol>)videoDelegate;


/**
 * @brief 播放视频
 */
- (void)replayRewardVideo;

/**
 * @brief 暂停视频
 */
- (void)pauseRewardVideo;


/**
 * @brief 播放器静音
 *
 * @param silence 是否静音
 */
- (void)changeCurrentVideoSilencePlayer:(BOOL)silence;

/**
 * @brief 播放器当前时间
 *
 * @return 时间
 */
- (NSTimeInterval)currentTime;

- (void)showDialog:(int)rewardTime;


- (NSString *)getSplashDidShowNcName;

- (NSString *)getSplashDidHideNcName;

- (void)showDialog:(NSString *)title
       contentInfo:(NSString *)content
             appId:(NSString *)appId
   didLeftTapBlock:(BBAAdDialogButtonItemTapBlock)didLeftTapBlock
  didRightTapBlock:(BBAAdDialogButtonItemTapBlock)didRightTapBlock;

@end