点播模块

头文件

VHVodPlayer.h

类名

VHVodPlayer

属性

delegate

@property (nonatomic,weak)id <VHVodPlayerDelegate>      delegate;

view

@property (nonatomic,strong,readonly)UIView             *view;

playerState

@property (nonatomic,assign,readonly)int                playerState;//播放器状态  详见 VHPlayerStatus 的定义.

isUseDefaultControl

@property (nonatomic,assign) BOOL                       isUseDefaultControl;//使用默认控制界面

duration

@property (nonatomic, readonly) NSTimeInterval          duration;

playableDuration

@property (nonatomic, readonly) NSTimeInterval          playableDuration;

currentPlaybackTime

@property (nonatomic, assign)   NSTimeInterval          currentPlaybackTime;

defaultDefinition

/**
 *  设置默认播放的清晰度 默认原画
 */
@property(nonatomic,assign)VHDefinition             defaultDefinition;

curDefinition

/**
 * 当前播放的清晰度 默认原画 只有在播放开始后调用 并在支持的清晰度列表中
 */
@property(nonatomic,assign)VHDefinition             curDefinition;

rate

/**
 * 播放速率 0.50, 0.67, 0.80, 1.0, 1.25, 1.50, and 2.0
 */
@property (nonatomic) float rate;

seekModel

/**
 * 点播视播放器seek模式设置 注意:需要播放前调用
 */
@property (nonatomic, assign) VHVodPlayerSeeekModel seekModel;

watermarkImageView

/**
 * 水印 ImageView 设置水印图片 及显示位置  注:只要使用了改属性 PaaS 控制台设置图片方式便失效
 */
@property (nonatomic,readonly) UIImageView* watermarkImageView;

方法

- startPlay:accessToken:

/**
 *  开始播放
 *  @param recordID       房间ID
 *  @param accessToken  accessToken
 */
- (BOOL)startPlay:(NSString*)recordID accessToken:(NSString*)accessToken;

- pause

/**
 *  暂停播放
 */
- (BOOL)pause;

- resume

/**
 *  恢复播放
 */
- (BOOL)resume;

- stopPlay

/**
 *  结束播放
 */
- (BOOL)stopPlay;

- seek:

/*
 seek 播放跳转到音视频流某个时间
 * time: 流时间,单位为秒
 */
- (BOOL)seek:(float)time;

- setScalingMode:

/*
 * 设置画面的裁剪模式
 */
- (BOOL)setScalingMode:(int)scalingMode;

- destroyPlayer

/**
 *  销毁播放器
 */
- (BOOL)destroyPlayer;

- setSeekModel: maxTime:

/**
 * 点播视播放器seek模式设置 注意:需要播放前调用
 * 如果是seekModel == VHVodPlayerSeeekModelPlayed 为指定播放过时间
 */
- (void)setSeekModel:(VHVodPlayerSeeekModel)seekModel maxTime:(NSTimeInterval)maxTime;

- takeAPhoto

/**
 *  获得当前时间视频截图
 */
- (UIImage*)takeAPhoto;

代理方法

VHVodPlayerDelegate

- player:statusDidChange:
/**
 *  观看状态回调
 *  @param player   播放器实例
 *  @param state   状态类型
 */
- (void)player:(VHVodPlayer *)player statusDidChange:(int)state;
- player:validDefinitions:curDefinition:
/**
 *  当前点播支持的清晰度列表
 *  @param definitions   支持的清晰度列表
 *  @param definition    当前播放清晰度
 */
- (void)player:(VHVodPlayer *)player validDefinitions:(NSArray*)definitions curDefinition:(VHDefinition)definition;
- player:stoppedWithError:
/**
 *  错误回调
 *  @param player   播放器实例
 *  @param error    错误
 */
- (void)player:(VHVodPlayer *)player stoppedWithError:(NSError *)error;

结构体

VHPlayerStatus

播放器状态

typedef NS_ENUM(NSInteger, VHPlayerStatus) {
    VHPlayerStatusUnkown,       //初始化时指定的状态,播放器初始化
    VHPlayerStatusLoading,      //加载中
    VHPlayerStatusPlaying,      //播放中
    VHPlayerStatusPause,        //播放暂停
    VHPlayerStatusStop,         //停止播放
    VHPlayerStatusComplete,     //本次播放完
};

VHPlayerScalingMode

播放器图像填充模式

typedef NS_ENUM(NSInteger, VHPlayerScalingMode) {
    VHPlayerScalingModeFill,      //将图像拉伸填充
    VHPlayerScalingModeAspectFit, //将图像等比例缩放,适配最长边,缩放后的宽和高都不会超过显示区域,居中显示,画面可能会留有黑边。
    VHPlayerScalingModeAspectFill,//将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不会留黑边,但可能因为部分区域被裁剪而显示不全。
};

VHDefinition

视频清晰度

/**
 *  视频清晰度
 */
typedef NS_ENUM(NSInteger,VHDefinition) {
    VHDefinitionOrigin             = 0,    //原画
    VHDefinitionUHD                = 1,    //超高清
    VHDefinitionHD                 = 2,    //高清
    VHDefinitionSD                 = 3,    //标清
    VHDefinitionAudio              = 4,    //纯音频
};