观看直播

VHCLivePlayer是微吼课堂看直播播放器类,此类定义了看直播以及设置直播属性等Api,实现直播观看,进入互动等功能。

1.初始化直播管理类

- (VHCLivePlayer *)livePlayer {
    if (!_livePlayer) {
        _livePlayer = [[VHCLivePlayer alloc] init];
        _livePlayer.delegate = self;
		[self.view addSubview:_livePlayer.playerView];
    }
    return _livePlayer;
}

2.开始播放

/**
 开始播放
 */
- (void)play;

3.停止播放

/**
 停止播放器
 播放器在 非Unknow 的其他状态下,任何时候都可以停止本次播放,停止后再次播放需要重新调用play方法重新播放。
 停止播放后,再次播放播放器状态将从VHPlayerStatePreparing开始。
 */
- (void)stopPlay;

4.销毁播放器

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

5.静音

/**
 静音
 @param isMute YES:静音 NO:不静音
 */
- (void)setMute:(BOOL)isMute;

6.上麦申请“举手操作”

/**
 @brief 申请上麦,异步函数
 @discussion 异步函数,当error = nil时,申请成功。申请成功后,收到讲师端邀请,方可上麦互动。举手回调成功后主播有30秒的应答时间,30秒后可方再次申请。
 */
- (void)microApplySucess:(void(^)(VHCError *error))complete;

7.拒绝上麦

/**
 @brief 拒绝上麦
 @param type 1:直接拒绝上麦 0:30秒超时拒绝
 @discussion 异步函数,当error = nil时,成功。讲师端邀请上麦时候可以选择拒绝上麦,拒绝后将会给讲师端发送消息。
 */
- (void)refusOfMicroApplyWithType:(NSInteger)type complete:(void(^)(VHCError *error))complete;

需要注意的是,有些活动支持举手,有些活动不支持举手,支持举手的活动讲师端可以设置是否允许举手。当前是否允许举手,以及举手状态变化,会有回调:

/**
 举手设置回调
 */
- (void)player:(VHCLivePlayer *)player interactivePermission:(VHInteractiveState)state
{
    NSLog(@"举手设置回调 %@",[NSThread currentThread]);
    
    switch (state) {
        case VHInteractiveStateWithOut://当前不允许“举手“
            NSLog(@"不允许举手!");
            break;
        case VHInteractiveStateHave:
            NSLog(@"允许举手!");
            break;
    }
}

VHCLivePlayerDelegate

/**
 播放器状态变化回调
 
 @param player VHCLivePlayer实例对象
 @param state  变化后的状态
 */
- (void)player:(VHCLivePlayer *)player stateDidChanged:(VHPlayerState)state;
/**
 视频所支持的分辨率回调
 
 @param definitions 支持的分辨率数组
 */
- (void)player:(VHCLivePlayer *)player supportDefinitions:(NSArray <__kindof NSNumber *> *)definitions curDefinition:(VHCDefinition)definition;
/**
 播放出错回调
 
 @param error 错误
 
 @see VHCError
 */
- (void)player:(VHCLivePlayer *)player playError:(VHCError *)error;
/**
 下载速度回调
 
 @param speed 下载速度
 */
- (void)player:(VHCLivePlayer *)player loadingWithSpeed:(NSString *)speed;

/**
 @brief      上麦回调
 @discussion 上麦方式有两种:1、用户申请上麦,讲师端收到申请,审批同意后会执行此回调;2、讲师直接邀请参会用户上麦,会执行此回调。
 @warning    收到此回调后用户方可以进行上麦推流。
 */
- (void)playerDidRecivedMicroInvitation:(VHCLivePlayer *)player;

/**
 *  观看直播,互动权限变更回调。
 *  @param player         VHCLivePlayer实例
 *  @param state          互动权限,即是否开启“举手”功能
 */
- (void)player:(VHCLivePlayer *)player interactivePermission:(VHInteractiveState)state;