播放器

VHallMoviePlayer

观看直播属性

@property(nonatomic,assign)id delegate; 
@property(nonatomic,strong,readonly)UIView * moviePlayerView; 
@property(nonatomic,assign)int timeout; //链接的超时时间 默认6000毫秒,单位为毫秒  MP4点播 最小10000毫秒
@property(nonatomic,assign)int reConnectTimes; //断开后的重连次数 默认 2次 
@property(nonatomic,assign)int bufferTime; //缓冲时间 默认 6秒 单位为秒 必须>0 值越小延时越小,卡顿增加 
@property(assign,readonly)int realityBufferTime; //获取播放器实际缓冲时间
@property(nonatomic,assign,readonly)VHPlayerState playerState;//播放器状态
@property(nonatomic,strong,readonly)UIView * documentView;      //文档view,当前活动如果没有文档次View 为 nil 可以从回调中获取此活动是否又文档
@property (nonatomic, assign)   float                   rate;//点播倍速播放速率 0.50, 0.67, 0.80, 1.0, 1.25, 1.50, and 2.0
@property (nonatomic, assign)   NSTimeInterval          initialPlaybackTime;//初始化要播放的位置
  • 视频View的缩放比例 默认是自适应模式
@property(nonatomic,assign)VHRTMPMovieScalingMode movieScalingMode;
  • 当前视频观看模式 观看直播允许切换观看模式(回放没有)
@property(nonatomic,assign)VHMovieVideoPlayMode playMode;
  • 设置默认播放的清晰度 默认原画
@property(nonatomic,assign)VHMovieDefinition defaultDefinition;
  • @brief 设置视频清晰度

  • 切换视频清晰度 默认是 defaultDefinition

@property(nonatomic,assign)VHMovieDefinition curDefinition;

初始化VHMoviePlayer对象

  • 初始化VHMoviePlayer对象
  • @param delegate *
  • @return 返回VHMoviePlayer的一个实例
-(instancetype)initWithDelegate:(id )delegate;

预加载视频信息 进入页面即需要使用此方法后 startPlay和startPlayback传参不再有效,只是有开始播放功能,更换房间时需要停止上个房间播放

  • 此方法可以提供播放前操作聊天等功能
  • @param param
  • param[@"id"] = 活动Id 必传
  • param[@"name"] = 如已登录可以不传
  • param[@"email"] = 如已登录可以不传
  • param[@"pass"] = 活动如果有K值或密码需要传
- (void)preLoadRoomWithParam:(NSDictionary*)param;

观看直播

  • 观看直播视频
  • @param param
  • param[@"id"] = 活动Id 必传
  • param[@"name"] = 如已登录可以不传
  • param[@"email"] = 如已登录可以不传
  • param[@"pass"] = 活动如果有K值或密码需要传
-(BOOL)startPlay:(NSDictionary*)param;

观看视频回放/点播

  • @param param
  • param[@"id"] = 活动Id 必传
  • param[@"name"] = 如已登录可以不传
  • param[@"email"] = 如已登录可以不传
  • param[@"pass"] = 活动如果有K值或密码需要传
-(BOOL)startPlayback:(NSDictionary*)param;

暂停拉流播放

-(void)pausePlay;

备注:暂停直播播放,不会停止接收聊天 ppt等事件(只用直播活动)

重新拉流播放

 -(BOOL)reconnectPlay;

备注:

  • 播放出错/pausePlay后恢复直播播放(只用直播活动)
  • @return NO 播放器不是暂停状态 或者已经结束

停止观看直播

-(void)stopPlay;

备注:停止直播也会停止直播相关功能如聊天等

设置静音

  • @param mute 是否静音
-(void)setMute:(BOOL)mute;

设置系统声音大小

  • @param size float [0.0~1.0]
+(void)setSysVolumeSize:(float)size;

获取系统声音大小

+(float)getSysVolumeSize;

销毁播放器

-(void)destroyMoivePlayer;

是否使用陀螺仪,仅VR播放时可用

- (void)setUsingGyro:(BOOL)usingGyro;

设置视屏布局方向,仅VR模式可用,要开启陀螺仪

- (void)setUILayoutOrientation:(UIDeviceOrientation)orientation;

观看直播视频(仅HLS可用,2.3.4以后不维护此功能)

  • @param param
  • param[@"id"] = 活动Id 必传
  • param[@"name"] =未登录用户必须传值,用户昵称,已登录用户可传也可以不传
  • param[@"email"] =未登录用户必须传值,用户邮箱,如果无邮箱需填写设备唯一标 识保证唯一性,已登录用户可传也可以不传
  • param[@"pass"] = K值,已创建的活动如果有K值需要传,没有可不传 *
  • @param moviePlayerController MPMoviePlayerController 对象
-(void)startPlay:(NSDictionary)param moviePlayer:(MPMoviePlayerController *)moviePlayerController;

发送 申请上麦/取消申请 消息

/**
 *  发送 申请上麦/取消申请 消息
 *  @param type 1举手,0取消举手
 */
- (BOOL)microApplyWithType:(NSInteger)type;

发送 申请上麦/取消申请 消息

/**
 *  发送 申请上麦/取消申请 消息
 *  @param type 1举手,0取消举手
 *  @param finishBlock 消息发送结果
 */
- (BOOL)microApplyWithType:(NSInteger)type finish:(void(^)(NSError *error))finishBlock;

收到邀请后 回复主持人

/**
 *  收到邀请后 回复主持人
 *  @param type 1接受,2拒绝,3超时失败
 *  @param finishBlock 结果回调
 */
- (BOOL)replyInvitationWithType:(NSInteger)type finish:(void(^)(NSError *error))finishBlock;

看直播事件响应 VHallMoviePlayerDelegate

视频预加载完成可以调用播放接口

- (void)preLoadVideoFinish:(VHallMoviePlayer*)moviePlayer activeState:(VHMovieActiveState)activeState error:(NSError*)error;

播放连接成功

  • @param info 直播状态对应信息,字典格式{@"code":xx, @"content":xxx}
- (void)connectSucceed:(VHallMoviePlayer)moviePlayer info:(NSDictionary)info; 

备注:- code:状态码,如枚举值(0,1,…)content:对应的状态说明

缓冲开始回调

  • @param info 直播状态对应信息,字典格式{@"code":xx, @"content":xxx}
- (void)bufferStart:(VHallMoviePlayer)moviePlayer info:(NSDictionary)info; 

备注: code:状态码,如枚举值(0,1,…)content:对应的状态说明

缓冲结束回调

  • @param info 直播状态对应信息,字典格式{@"code":xx, @"content":xxx}
-(void)bufferStop:- - -- ---(VHallMoviePlayer)moviePlayer info:(NSDictionary)info; 

备注:code:状态码,如枚举值(0,1,…)content:对应的状态说明

下载速率的回调

  • @param moviePlayer
  • @param info 下载速率信息 单位kbps
  • @param info 直播状态对应信息,字典格式{@"code":xx, @"content":xxx}
- (void)downloadSpeed:(VHallMoviePlayer)moviePlayer info:(NSDictionary)info; 

备注:code:状态码,如枚举值(0,1,…)content:对应的状态说明

Streamtype

  • @param moviePlayer moviePlayer
  • @param info 直播状态对应信息,字典格式{@"code":xx, @"content":xxx}
- (void)recStreamtype:(VHallMoviePlayer)moviePlayer info:(NSDictionary)info; 

备注:code:状态码,如枚举值(0,1,…)content:对应的状态说明

播放时错误的回调 *

  • @param livePlayErrorType 直播错误类型
  • @param info 直播状态对应信息,字典格式{@"code":xx, @"content":xxx}
- (void)playError:(VHLivePlayErrorType)livePlayErrorType info:(NSDictionary)info; 

备注:code:状态码,如枚举值(0,1,…)content:对应的状态说明

获取视频活动状态

  • @param playMode 视频活动状态
- (void)ActiveState:(VHMovieActiveState)activeState; 

获取当前视频播放模式

  • @param playMode 视频播放模式
- (void)VideoPlayMode:(VHMovieVideoPlayMode)playMode isVrVideo:(BOOL)isVrVideo; 

主持人显示/隐藏文档

/**
 *  主持人显示/隐藏文档
 *
 *  @param isShow  YES 主持人显示观看端文档,NO 主持人隐藏观看端文档
 */
- (void)moviePlayer:(VHallMoviePlayer*)player isShowDocument:(BOOL)isShow;

获取当前视频支持的所有播放模式

  • @param playModeList 视频播放模式列表
- (void)VideoPlayModeList:(NSArray)playModeList; 

该视频支持的清晰度列表

  • @param definitionList 支持的清晰度列表
- (void)VideoDefinitionList:(NSArray)definitionList; 

直播结束消息

- (void)LiveStoped; 

主持人是否允许举手申请上麦 回调

/**
 *  是否允许举手申请上麦 回调。
 *  @param player         VHallMoviePlayer实例
 *  @param isInteractive  当前活动是否支持互动功能
 *  @param state          主持人是否允许举手
 */
- (void)moviePlayer:(VHallMoviePlayer *)player isInteractiveActivity:(BOOL)isInteractive interactivePermission:(VHInteractiveState)state;

主持人是否同意上麦申请回调

/**
 *  主持人是否同意上麦申请回调
 *  @param player       VHallMoviePlayer实例
 *  @param attributes   参数 收到的数据
 *  @param error        错误回调 nil 同意上麦 不为空为不同意上麦
 */
- (void)moviePlayer:(VHallMoviePlayer *)player microInvitationWithAttributes:(NSDictionary *)attributes error:(NSError *)error;

主持人邀请你上麦

/**
 *  主持人邀请你上麦
 *  @param player       VHallMoviePlayer实例
 *  @param attributes   参数 收到的数据
 */
- (void)moviePlayer:(VHallMoviePlayer *)player microInvitation:(NSDictionary *)attributes;

被踢出

/**
 *  被踢出
 *
 *  @param player player
 *  @param isKickout 被踢出 取消踢出后需要重新进入
 */
- (void)moviePlayer:(VHallMoviePlayer*)player isKickout:(BOOL)isKickout;

点播回调 播放器状态

#pragma mark - 点播
/**
 *  statusDidChange
 *
 *  @param player player
 *  @param state  VHPlayerState
 */
- (void)moviePlayer:(VHallMoviePlayer *)player statusDidChange:(int)state;

点播回调 当前播放时间 1s一次

/**
 *  currentTime
 *
 *  @param player player
 *  @param currentTime 回放当前播放时间点 1s 回调一次可用于UI刷新
 */
- (void)moviePlayer:(VHallMoviePlayer*)player currentTime:(NSTimeInterval)currentTime;

返回用户是否拥有投屏权限

/**
 *  是否包含投屏功能
 *  * cast_screen 1有投屏功能 0没有投屏功能
 */
- (void)moviePlayer:(VHallMoviePlayer *)player isCast_screen:(BOOL)isCast_screen;

返回是否开启问答功能

/**
 *  是否开启问答功能
 *  * cast_screen 1有问答功能 0没有问答功能
 */
- (void)moviePlayer:(VHallMoviePlayer *)player isQuestion_status:(BOOL)isQuestion_status;

播主发布公告

  • 播主发布公告消息
- (void)Announcement:(NSString)content publishTime:(NSString)time; 

包含文档 获取翻页图片路径

  • @param changeImage 图片更新 */
- (void)PPTScrollNextPagechangeImagePath:(NSString*)changeImagePath;

画笔

- (void)docHandList:(NSArray)docList whiteBoardHandList:(NSArray)boardList;