开放平台
首页平台概述
开发者
  • API文档
  • SDK
产品功能
  • 新手入门
  • 产品功能
常见问题
首页平台概述
开发者
  • API文档
  • SDK
产品功能
  • 新手入门
  • 产品功能
常见问题
  1. 互动直播
  • demo
  • JS SDK
    • 产品介绍
    • 快速接入
    • SDK 对接示例
    • 观看直播
    • 暖场视频
    • 房间消息说明
    • 互动连麦
    • 文档白板
    • 全局事件
    • 全局错误码
    • 版本更新记录
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-公告
      • 互动-商品
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-聊天
      • 互动-优惠券
      • 互动-点赞
    • 直播间拓展功能
      • 资料下载
      • 观看限制验证
      • 观看协议
      • 回放章节
  • 点播SDK
    • 点播上传SDK
    • 更新记录
  • iOS SDK
    • 整体介绍
    • 快速接入
    • SDK 登录
    • 暖场视频
    • 视频轮询
    • 直播彩排
    • 高级美颜
    • 云导播
    • 观看协议
    • 文档白板演示
    • 聊天功能
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 观众互动
      • 推流摄像头
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-章节打点
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播间拓展能力
      • 直播间特色功能配置项
      • 文件下载
      • 修改角色昵称
      • 观看权限校验
      • 投屏
      • 虚拟人数
    • 观看回放
      • 观看回放
    • 防录屏
      • 跑马灯
    • 字段说明
      • 互动活动详情字段
      • 错误码说明
      • 常量定义
      • 活动详情字段说明
    • 版本更新说明
      • 版本更新信息
      • v2.3.0 到 v2.4.0 升级说明
      • v3.0.1 到 v3.2.0 升级说明
      • V2.9.0到v3.0.1升级说明
      • v6.3.0
      • v6.2.1
      • v3.2.0 到 v4.0.1
      • v2.7.0 到 v2.8.0、v2.9.0 升级说明
      • 6.5.0
      • v5.0.x 到 v6.0.0
      • v6.4.0
  • Adroid SDK
    • 整体介绍
    • 快速接入
    • SDK登录
    • 暖场视频
    • 视频轮巡功能
    • 直播彩排
    • 高级美颜
    • 云导播功能
    • 观看协议
    • 文档白板
    • 聊天功能
    • 房间消息
    • 信息采集说明
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
      • 观众观看互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播拓展功能
      • 修改角色名称
      • 文件下载
      • 投屏演示
      • 虚拟人数
      • 观看权限校验
      • 直播间特色功能配置项
    • 观看回放
      • 观看回放/点播
    • 防录屏
      • 直播水印
      • 跑马灯
    • 字段说明
      • 房间消息字段说明
      • 聊天消息字段说明
      • 活动详情字段说明
    • 版本更新说明
      • 更新记录
      • v6.4.0
      • v6.3.0
      • v6.2.3
      • v6.2.1
      • v6.2.0
      • v6.1.0
      • v6.0.0
      • v5.0.0
      • v4.1.0
      • v4.0.0
      • v3.3.0
  • APP嵌入支付说明
    • 支付调起说明
    • Scheme规则说明
  1. 互动直播

互动直播API

核心类#

类名类描述
VHRoom互动类

基础属性#

属性属性描述
delegate代理
status当前房间状态
broadCastConfig旁路布局配置
isPublishing当前是否在推流中
isVideoRound是否要参与轮巡
isRehearsal是否彩排 YES:彩排模式开播 NO:正常直播 (默认NO,开播前设置有效)
isPublishAnother是否开启自动旁路 YES:开启 NO:不开启 (默认NO,开播前设置有效)
isMainScreen是否开启自动主屏配置 YES:开启 NO:不开启 (默认NO,开播前设置有效)
cameraView当前推流cameraView,只在推流过程中存在
renderViewsById除自己以外房间内其他流id与视频view信息 (key:streamId value:视频VHRenderView)
streams除自己以外房间内其他流id列表
roomId房间id
roomInfo房间相关信息(进入房间成功后才有值)

关键方法#

方法方法描述
enterRoomWithRoomId观众进入互动房间
enterRoomWithParams观众进入互动房间
guestEnterRoomWithParams嘉宾进入互动房间
hostEnterRoomStartWithParams主持人进入互动房间
publishWithCameraView开始推流
unpublish下麦并停止推流
leaveRoom离开房间
setRoomJoinBroadCastMixOption设置是否加入混流
publishAnotherLive开启/关闭旁路直播
baseConfigRoomBroadCast基础配置旁路混流参数
setHandsUpStatus设置是否开启观众举手申请上麦功能
inviteWithTargetUserId邀请某个用户上麦
agreeApplyWithTargetUserId同意某个用户的上麦申请
rejectApplyWithTargetUserId拒绝某个用户的上麦申请
setMainSpeakerWithTargetUserId设置某个用户为主讲人
downMicWithTargetUserId下麦某个用户
setBanned禁言/取消禁言某个用户
setKickOut踢出/取消踢出某个用户
applySuccess申请上麦
cancelApplySuccess取消申请上麦
rejectInviteSuccess拒绝主持人发来的上麦邀请
agreeInviteSuccess同意主持人发来的上麦邀请,成功回调中开启推流
settingRoomBroadCastDocMixEnable是否开启文档融屏旁路
getOnlineUserListWithPageNum获取在线成员列表
getLimitUserListWithPageNum获取受限成员列表 (包括:被踢出、被禁言的用户)
getDocListWithPageNum获取房间文档列表

VHRoomDelegate 代理方法#

方法方法描述
enterRoomWithError进入房间
didConnect进入房间
didError房间发生错误
didChangeStatus房间状态改变
didPublish推流成功
didUnpublish停止推流
didAddAttendView视频流加入
didRemovedAttendView视频流离开
leaveInteractiveRoomByHost自己下麦
microphoneClosed自己的麦克风开关状态改变
screenClosed自己的摄像头开关状态改变
iskickout自己被踢出房间
forbidChat自己被禁言或取消禁言
allForbidChat收到全体禁言或取消全体禁言
liveOver直播结束
receiveRoomMessage互动相关消息

观众进入互动房间#

方法api
- (void)enterRoomWithRoomId:(NSString *)roomId;
- (void)enterRoomWithParams:(NSDictionary *)params;
方法入参
参数名称是否必须示例备注
roomId是123456789房间id,同活动id
params[@"id"]是params[@"id"] = @"123456789"房间id,同活动id
params[@"nickname"]否params[@"nickname"] = @"张三"昵称 (可选)
params[@"email"]否params[@"email"] = @"xxx@vhall.com"邮箱(可选)
方法示例
@interface UIViewController () <VHRoomDelegate>
/// 互动SDK
@property (nonatomic, strong) VHRoom *inavRoom;
@end

- (void)viewDidLoad {
    [super viewDidLoad];
    // 初始化互动对象
    self.inavRoom = [[VHRoom alloc] init];
    // 设置delegate
    self.inavRoom.delegate = self;
    // 观众进入互动房间
    [self.inavRoom enterRoomWithRoomId:@"123456789"];
}

嘉宾进入互动房间#

v6.1新增
方法api
- (void)guestEnterRoomWithParams:(NSDictionary *)params
                         success:(void(^)(VHRoomInfo *info))success
                            fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
params是params必要参数
params[@"id"]是params[@"id"] = @"123456789"房间id,同活动id
params[@"nickname"]否params[@"nickname"] = @"张三"昵称
params[@"email"]否params[@"email"] = @"xxx@vhall.com"邮箱(可选)
方法返回参数
参数名称备注
success成功
fail错误

VHRoomInfo参数详解#

参数详解
方法示例
// 嘉宾进入互动房间
[self.inavRoom guestEnterRoomWithParams:self.params success:^(VHRoomInfo *roomInfo) {
} fail:^(NSError *error) {
}];

主持人进入互动房间#

方法api
收到"房间连接成功回调"后可开始推流(主持人使用)
- (void)hostEnterRoomStartWithParams:(NSDictionary *)params
                             success:(void(^)(VHRoomInfo *info))success
                                fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
params是params必要参数
params[@"id"]是params[@"id"] = @"123456789"房间id,同活动id
params[@"nickname"]否params[@"nickname"] = @"张三"昵称
params[@"email"]否params[@"email"] = @"xxx@vhall.com"邮箱(可选)
方法示例
// 主持人进入互动房间
[self.inavRoom hostEnterRoomStartWithParams:self.params success:^(VHRoomInfo *roomInfo) {
}fail:^(NSError *error) {
}];

开始推流#

方法api
加入房间成功以后方可调用
- (BOOL)publishWithCameraView:(VHLocalRenderView * )cameraView;
方法入参
参数名称是否必须示例备注
cameraView是VHLocalRenderView * cameraView = [VHLocalRenderView new];需要推流的本地摄像头view
方法示例
// 房间连接成功
- (void)room:(VHRoom *)room didConnect:(NSDictionary *)roomMetadata
{
    NSLog(@"房间连接成功,开始推流");
    //上麦推流
    [self.inavRoom publishWithCameraView:self.cameraView];
}

下麦并停止推流#

方法api
- (void)unpublish;
方法示例
[self.inavRoom unpublish];

离开房间#

方法api
- (void)leaveRoom;
方法示例
[self.inavRoom leaveRoom];

设置是否加入混流#

方法api
- (void)setRoomJoinBroadCastMixOption:(BOOL)isJoin
                           cameraView:(VHLocalRenderView *)cameraView
                               finish:(void(^)(int code, NSString * _Nonnull message))handle;
方法入参
参数名称是否必须示例备注
isJoin是YES是否加入
cameraView是cameraView加入混流的renderView
handle返回参数

handle参数详解#

参数名称备注
code状态码
message详情
方法示例
[self.inavRoom setRoomJoinBroadCastMixOption:YES
                                  cameraView:self.videoRoundRenderView
                                      finish:^(int code, NSString * _Nonnull message) {
    NSLog(@"状态 === %d 文案 === %@",code,message);
}];

开启或关闭旁路直播#

方法api
- (BOOL)publishAnotherLive:(BOOL)isOpen param:(NSDictionary*)param completeBlock:(void(^)(NSError *error))block;
方法入参
参数名称是否必须示例备注
isOpen是YESYes开启旁路直播 NO关闭旁路直播
param是param调用此函数配置视频质量参数和旁路布局
方法示例
NSMutableDictionary *param = [NSMutableDictionary dictionary];
param[@"precast_pic_exist"] = @(NO); //是展示小人占位图
param[@"backgroundColor"] = [self.roomInfo.videoBackGroundColor stringByReplacingOccurrencesOfString:@"#" withString:@"0x"];

NSMutableDictionary * borderDic = [NSMutableDictionary dictionary];
borderDic[@"exist"] = @(YES);
borderDic[@"width"] = @(1);
borderDic[@"color"] = [self.roomInfo.videoBackGroundColor stringByReplacingOccurrencesOfString:@"#" withString:@"0x"];
param[@"border"] = borderDic; //配置背景颜色

[self.inavRoom publishAnotherLive:YES param:[param copy] completeBlock:^(NSError *error) {
    if(!error) { //设置旁路直播状态成功
        VUI_Log(@"设置旁路成功");
    }else if(error.code == 40008) {//旁路推流正在进行中
        VUI_Log(@"设置旁路错误:当前推流正在进行中");
    }else {
        VUI_Log(@"设置旁路错误:%@",error.domain);
    }
}];

基础配置旁路混流参数#

方法api
- (NSDictionary*)baseConfigRoomBroadCast:(VHBroadcastProfileMode)definition layout:(VHBroadcastLayout)layout;
方法入参
参数名称是否必须示例备注
definition是VHBroadcastProfileMode_480P_0视频质量参数,推荐使用。即(分辨率+帧率+码率)
layout是VHBroadcastLayout_PATTERN_GRID_1旁路布局模板(非自定义布局)
方法示例
BroadcastDefinition definition = VHBroadcastProfileMode_480P_0;
VHBroadcastLayout layout = VHBroadcastLayout_ADAPTIVE_TILED_MODE;
[self.inavRoom baseConfigRoomBroadCast:definition layout:layout]

设置旁路背景图#

方法api
- (void)settingRoomBroadCastBackgroundImageURL:(NSURL *_Nullable)url cropType:(VHRoomBGCropType)cropType finish:(void(^)(int code, NSString * _Nonnull message))handle;
方法入参
参数名称是否必须示例备注
url是[NSUrl URLWithString:@""]背景图URL,如果为空,则为取消背景图
cropType是VHRoomBGCropTypeAspectFit填充类型:VHRoomBGCropType
方法示例
// 设置背景图片
[self.inavRoom settingRoomBroadCastBackgroundImageURL:[NSURL URLWithString:self.roomInfo.finalVideoBackground] cropType:1 finish:^(int code, NSString * _Nonnull message) {

}];

设置是否开启观众举手申请上麦功能#

方法api
主持人使用,若开启,则观众可举手申请上麦。
- (void)setHandsUpStatus:(NSInteger)status
                 success:(void(^)(NSDictionary *response))success
                    fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
status是11:开启 0:关闭
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom setHandsUpStatus:1 success:nil fail:nil];

邀请某个用户上麦#

方法api
主持人使用
- (void)inviteWithTargetUserId:(NSString *)userId
                       success:(void(^)(void))success
                          fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
userId是123456目标用户id
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.room inviteWithTargetUserId:targetId success:^{
    NSLog(@"已发送上麦邀请");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

同意某个用户的上麦申请#

方法api
主持人使用
- (void)agreeApplyWithTargetUserId:(NSString *)userId
                           success:(void(^)(void))success
                              fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
userId是123456目标用户id
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom agreeApplyWithTargetUserId:targetId success:^{
    NSLog(@"同意邀请");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

拒绝某个用户的上麦申请#

方法api
主持人使用
- (void)rejectApplyWithTargetUserId:(NSString *)userId
                            success:(void(^)(void))success
                               fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
userId是123456目标用户id
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom rejectApplyWithTargetUserId:targetId success:^{
    NSLog(@"拒绝某个用户的上麦申请");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

设置某个用户为主讲人#

方法api
主持人使用
- (void)setMainSpeakerWithTargetUserId:(NSString *)userId
                               success:(void(^)(void))success
                                  fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
userId是123456目标用户id
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom setMainSpeakerWithTargetUserId:model.account_id success:^{
    NSLog(@"设置成功");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

下麦某个用户#

方法api
主持人使用
- (void)downMicWithTargetUserId:(NSString *)userId
                        success:(void(^)(void))success
                           fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
userId是123456目标用户id
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom downMicWithTargetUserId:targetId success:^{
    NSLog(@"已下麦该用户");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

禁言或取消禁言某个用户#

方法api
- (void)setBanned:(BOOL)status
     targetUserId:(NSString *)userId
          success:(void(^)(void))success
             fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
status是YESYES:禁言 NO:取消禁言
userId是123456目标用户id
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom setBanned:YES targetUserId:targetId success:^{
    NSLog(@"禁言成功");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

踢出或取消踢出某个用户#

方法api
- (void)setKickOut:(BOOL)status
      targetUserId:(NSString *)userId
           success:(void(^)(void))success
              fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
status是YESYES:踢出 NO:取消踢出
userId是123456目标用户id
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom setKickOut:YES targetUserId:targetId success:^{
    NSLog(@"踢出成功");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

申请上麦#

方法api
- (void)applySuccess:(void(^)(void))success
                fail:(void(^)(NSError *error))fail;
方法示例
[self.inavRoom applySuccess:^{
    NSLog(@"申请成功");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

取消申请上麦#

方法api
- (void)cancelApplySuccess:(void(^)(void))success
                      fail:(void(^)(NSError *error))fail;
方法示例
[self.inavRoom cancelApplySuccess:^{
    NSLog(@"取消申请成功");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

拒绝主持人发来的上麦邀请#

方法api
- (void)rejectInviteSuccess:(void(^)(void))success
                       fail:(void(^)(NSError *error))fail;
方法示例
[self.inavRoom rejectInviteSuccess:^{
    NSLog(@"拒绝成功");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

同意主持人发来的上麦邀请#

方法api
- (void)agreeInviteSuccess:(void(^)(void))success
                      fail:(void(^)(NSError *error))fail;
方法示例
[self.inavRoom agreeInviteSuccess:^{
    NSLog(@"同意成功");
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

是否开启文档融屏旁路#

方法api
- (void)settingRoomBroadCastDocMixEnable:(BOOL)enable
                                  finish:(void(^)(int code, NSString * _Nonnull message))handle;
方法入参
参数名称是否必须示例备注
enable是YES开启/关闭
handle请求返回参数
方法示例
//配置融屏
[self.inavRoom settingRoomBroadCastDocMixEnable: YES  finish:^(int code, NSString * _Nonnull message) {

}];

获取在线成员列表#

方法api
- (void)getOnlineUserListWithPageNum:(NSInteger)pageNum
                            pageSize:(NSInteger)pageSize
                            nickName:(NSString *)nickName
                             success:(void(^)(NSArray <VHRoomMember *> *list,BOOL haveNextPage))success
                                fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
pageNum是1页码,第一页从1开始
pageSize是10每页条数
nickName否张三指定昵称(非必传参数,可传nil)
success请求成功返回参数
fail请求失败返回参数

VHRoomMember参数详解#

参数名称备注
role_name角色 1主持人 2观众 3助理 4嘉宾
account_id用户id
join_id参会id
avatar头像
nickname昵称
is_speak是否上麦中 1:上麦中 其他:未上麦
device_type设备类型 0未知 1手机端 2PC 3SDK
device_status设备检测状态 0:未检测 1:可以上麦 2:不可以上麦
is_banned是否被禁言
is_kicked是否被踢出
方法示例
[self.inavRoom getOnlineUserListWithPageNum:pageNum pageSize:pageSize nickName:nil success:^(NSArray<VHRoomMember *> *list, BOOL haveNextPage) {
    NSLog(@"成员列表 === %@ 是否有下一页 === %@",list,haveNextPage);
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

获取受限成员列表#

方法api
包括:被踢出、被禁言的用户
- (void)getLimitUserListWithPageNum:(NSInteger)pageNum
                           pageSize:(NSInteger)pageSize
                            success:(void(^)(NSArray <VHRoomMember *> *list,BOOL haveNextPage))success
                               fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
pageNum是1页码,第一页从1开始
pageSize是10每页条数
success请求成功返回参数
fail请求失败返回参数
方法示例
[self.inavRoom getLimitUserListWithPageNum:pageNum pageSize:pageSize success:^(NSArray<VHRoomMember *> *list, BOOL haveNextPage) {
    NSLog(@"受限成员列表 === %@ 是否有下一页 === %@",list,haveNextPage);
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

获取房间文档列表#

方法api
- (void)getDocListWithPageNum:(NSInteger)pageNum
                     pageSize:(NSInteger)pageSize
                      success:(void(^)(NSArray <VHRoomDocumentModel *> *list,BOOL haveNextPage))success
                         fail:(void(^)(NSError *error))fail;
方法入参
参数名称是否必须示例备注
pageNum是1页码,第一页从1开始
pageSize是10每页条数
success请求成功返回参数
fail请求失败返回参数

VHRoomMember参数详解#

参数名称备注
size文件大小 字节数:size/(1024*1024.0)为M
created_at创建时间
updated_at修改时间
ext文档类型扩展名
document_id文档ID
file_name文件名
方法示例
[self.room getDocListWithPageNum:pageNum pageSize:10 success:^(NSArray<VHRoomDocumentModel *> *list, BOOL haveNextPage) {
    NSLog(@"文档列表 === %@ 是否有下一页 === %@",list,haveNextPage);
} fail:^(NSError *error) {
    NSLog(error.localizedDescription);
}];

进入房间#

方法api
- (void)room:(VHRoom *)room enterRoomWithError:(NSError *)error;
方法返回参数
参数名称备注
error错误信息,如果error存在,则进入房间失败

房间连接成功#

方法api
- (void)room:(VHRoom *)room didConnect:(NSDictionary *)roomMetadata;
方法返回参数
参数名称备注
roomMetadata互动直播间数据 (可能为nil,暂时无用)

房间发生错误#

方法api
- (void)room:(VHRoom *)room didError:(VHRoomErrorStatus)status reason:(NSString *)reason;
方法返回参数
参数名称备注
statusVHRoomErrorUnknown VHRoomErrorClient VHRoomErrorClientFailedSDP VHRoomErrorSignaling VHRoomErrorKickout : 观看被踢出
reason错误描述

房间状态改变#

方法api
- (void)room:(VHRoom *)room didChangeStatus:(VHRoomStatus)status;
方法返回参数
参数名称备注
status房间状态

推流成功#

方法api
- (void)room:(VHRoom *)room didPublish:(VHRenderView *)cameraView;
方法返回参数
参数名称备注
cameraView当前推流

停止推流#

方法api
- (void)room:(VHRoom *)room didUnpublish:(VHRenderView *)cameraView;
方法返回参数
参数名称备注
cameraView当前推流 cameraView

视频流加入#

方法api
流类型包括音视频、共享屏幕、插播等
- (void)room:(VHRoom *)room didAddAttendView:(VHRenderView *)attendView;
方法返回参数
参数名称备注
attendView该成员对应视频画面

视频流离开#

方法api
流类型包括音视频、共享屏幕、插播等
- (void)room:(VHRoom *)room didRemovedAttendView:(VHRenderView *)attendView;
方法返回参数
参数名称备注
attendView该成员对应视频画面

自己下麦 v4.0.0+#

方法api
主动下麦/被下麦都会触发此回调
- (void)leaveInteractiveRoomByHost:(VHRoom *)room;

自己的麦克风开关状态改变 v4.0.0+#

方法api
主动操作/被操作都会触发此回调,收到此回调后不需要再主动设置麦克风状态
- (void)room:(VHRoom *)room microphoneClosed:(BOOL)isClose;
方法返回参数
参数名称备注
isCloseYES:关闭 NO:开启

自己的摄像头开关状态改变 v4.0.0+#

方法api
主动操作/被操作都会触发此回调,收到此回调后不需要再主动设置摄像头状态
- (void)room:(VHRoom *)room screenClosed:(BOOL)isClose;
方法返回参数
参数名称备注
isCloseYES:关闭 NO:开启

自己被踢出房间#

方法api
- (void)room:(VHRoom *)room iskickout:(BOOL)iskickout;
方法返回参数
参数名称备注
iskickout是否被踢出

自己被禁言或取消禁言#

方法api
- (void)room:(VHRoom *)room forbidChat:(BOOL)forbidChat;
方法返回参数
参数名称备注
forbidChat是否被禁言

收到全体禁言或取消全体禁言#

方法api
- (void)room:(VHRoom *)room allForbidChat:(BOOL)allForbidChat;
方法返回参数
参数名称备注
allForbidChat是否已全体禁言

直播结束#

方法api
- (void)room:(VHRoom *)room liveOver:(BOOL)liveOver;
方法返回参数
参数名称备注
liveOver是否结束

互动相关消息#

方法api
- (void)room:(VHRoom *)room receiveRoomMessage:(VHRoomMessage *)message;
方法返回参数
参数名称备注
message消息相关信息

房间人数改变#

方法api
目前仅支持真实人数改变触发此回调
- (void)onlineChangeRealNum:(NSUInteger)online_real virtualNum:(NSUInteger)online_virtual;
方法返回参数
参数名称备注
online_real真实在线用户数
online_virtual虚拟在线用户数

房间公告发布#

方法api
- (void)room:(VHRoom *)room announcement:(NSString *)content publishTime:(NSString *)time;
方法返回参数
参数名称备注
content公告内容
time公告时间
修改于 2025-05-27 11:59:31
上一页
推流摄像头
下一页
主播发起互动直播
Built with