观看直播
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;