| 类名 | 类描述 |
|---|---|
| VHWebinarBaseInfo | 获取活动状态 |
| VHallLivePublish | 视频直播发起 |
| 属性 | 属性描述 |
|---|---|
| liveView | 回显云导播台画面 |
| 方法 | 方法描述 |
|---|---|
| getWebinarBaseInfoWithWebinarId | 查询活动基础信息 |
| getDirectorStatusWithWebinarId | 导播台是否开启 |
| getSeatList | 以视频推流到云导播获取机位 列表 |
| selectSeatWithWebinarId | 选择机位 |
| getDirectorRoomStreamStatus | 云导播台的房间流状态 |
| 方法 | 方法描述 |
|---|---|
| initDirectorHostEnter | 以主持人身份发起直播 |
| startSeatPushDirectorLive | 云导播:机位推流到云导播台 |
| startDirectorLive | 开始云导播 |
| stopDirectorLive | 结束云导播 |
| destoryDirectorLive | 销毁云导播 |
+ (void)getWebinarBaseInfoWithWebinarId:(NSString *)webinarId
success:(void(^)(VHWebinarBaseInfo *baseInfo))success
fail:(void(^)(NSError *error))fail;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| webinarId | 是 | 123456789 | 活动 id |
[VHWebinarBaseInfo getWebinarBaseInfoWithWebinarId:DEMO_Setting.activityID success:^(VHWebinarBaseInfo * _Nonnull baseInfo) {
if (baseInfo.is_director == 1) {
VH_ShowToast(@"当前直播是云导播活动");
}else{
VH_ShowToast(@"当前直播不是云导播活动");
}
} fail:^(NSError * _Nonnull error) {
}];+ (void)getDirectorStatusWithWebinarId:(NSString *)webinarId
success:(void(^)(BOOL director_status))success
fail:(void(^)(NSError *error))fail;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| webinarId | 是 | 123456789 | 活动 id |
| 参数名称 | 备注 |
|---|---|
| director_status | YES:已开启,NO:未开启 |
[VHWebinarBaseInfo getDirectorStatusWithWebinarId:DEMO_Setting.activityID success:^(BOOL director_status) {
if (director_status) {
//云导播台已开启
}else{
//云导播台未开启
}
} fail:^(NSError * _Nonnull error) {
}];+ (void)getSeatList:(NSString *)webinarId
success:(void(^)(VHDirectorModel *directorModel))success
fail:(void(^)(NSError *error))fail;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| webinarId | 是 | 123456789 | 活动 id |
VHDirectorModel *directorModel (云导播台详情)
| 参数名称 | 参数描述 |
|---|---|
| director_status | 云导播台开启状态 0-未开启 1-已开启 |
| seatList | 机位列表(可用状态+机位 id+机位名称) |
VHSeatModel (云导播台详情)
| 参数名称 | 参数描述 |
|---|---|
| name | 机位名称 |
| seat_id | 机位 ID |
| seat_status | 机位状态 |
[VHWebinarBaseInfo getDirectorStatusWithWebinarId:DEMO_Setting.activityID success:^(BOOL director_status) {
if (director_status) {
//云导播台已开启
}else{
//云导播台未开启
}
} fail:^(NSError * _Nonnull error) {
}];+ (void)selectSeatWithWebinarId:(NSString *)webinarId
seatId:(NSString *)seatId
success:(void(^)(BOOL))success
fail:(void(^)(NSError *error))fail;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| webinarId | 是 | 123456789 | 活动 id |
| seatId | 是 | 123456 | 机位 id |
[VHWebinarBaseInfo selectSeatWithWebinarId:@"互动id" seatId:@"机位id" success:^(BOOL isUse) {
} fail:^(NSError * _Nonnull error) {
}];+ (void)getDirectorRoomStreamStatus:(NSString *)webinarId
success:(void(^)(BOOL isHaveStream))success
fail:(void(^)(NSError *error))fail;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| webinarId | 是 | 123456789 | 活动 id |
| 参数名称 | 备注 |
|---|---|
| isHaveStream | 是否有流 |
[VHWebinarBaseInfo getDirectorRoomStreamStatus:self.roomId success:^(BOOL isHaveStream) {
} fail:^(NSError * _Nonnull error) {
}];- (instancetype)initDirectorHostEnter:(NSDictionary *)param
fail:(void(^)(NSError *))failure;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| param | 字典类型 | ||
| param[@"id"] | 是 | 123456789 | 活动 Id |
| param[@"access_token"] | 否 | Hh129e8... | 发直播 token (新版 v3 控制台创建的直播活动可不传此值,v6.0 修改) |
| param[@"nickname"] | 否 | 张三 | 昵称 |
@property (strong, nonatomic)VHallLivePublish *engine;
self.engine = [[VHallLivePublish alloc] initDirectorHostEnter:self.publishParam fail:^(NSError * error) {
}];- (void)startSeatPushDirectorLive:(NSDictionary*)param
checkHostLine:(BOOL)checkHostLine;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| param | 字典类型 | ||
| param[@"id"] | 是 | 123456789 | 活动 Id |
| param[@"seat"] | 是 | 123456 | 机位 id |
| param[@"nickname"] | 否 | 张三 | 昵称 |
| param[@"access_token"] | 否 | Hh129e8... | 发直播 token (新版 v3 控制台创建的直播活动可不传此值,v6.0 修改) |
| param[@"nickname"] | 否 | 张三 | 昵称 |
| checkHostLine | 是否检查主机线路 |
[self.engine startSeatPushDirectorLive:self.publishParam checkHostLine:NO];- (void)startDirectorLive;[self.engine startDirectorLive];- (void)stopDirectorLive;[self.engine stopDirectorLive];- (void)destoryDirectorLive;[self.engine destoryDirectorLive];