跨房间连麦
流程说明
跨房间连麦功能中区分主房间和副房间。 主副房间定义如下:
- 主房间:本端在最开始加入的房间,即:
RCRTCRoom.h
- 副房间:在接受邀请后加入的对方房间,即:
RCRTCOtherRoom.h
提示
- 跨房间连麦前需要双方都已经加入自己的主房间,未加入主房间前无法进行连麦的邀请和被邀请。
- 两种房间的类都有对应的代理 RCRTCRoomEventDelegate 和 RCRTCOtherRoomEventDelegate 用来区分不同类型房间的回调。
发起邀请
向指定用户发送跨房间连麦请求。
接口原型
Objective C
- (void)requestRoomPK:(nullable NSString *)inviteeRoomId
userId:(nullable NSString *)inviteeUserId
autoMix:(BOOL)autoMix
extra:(nullable NSString *)extra
completion:(nullable RCRTCOperationCallback)completion;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
inviteeRoomId | NSString | 否 | 被邀请人所在房间号 |
inviteeUserId | NSString | 否 | 被邀请人userId |
autoMix | BOOL | 是 | 是否将邀请人音视频资源发送到被邀请人房间中合流 |
extra | NSString | 否 | 附加信息,可随消息发送给被邀请人 |
completion | RCRTCOperationCallback | 否 | 动作的回调 |
代码示例
Objective C
[self.mainRtcRoom.localUser requestRoomPK:otherRoomId
userId:otherRoomUserId
autoMix:YES
extra:@""
completion:^(BOOL isSuccess, RCRTCCode code) {
// 处理邀请结果
}];
取消邀请
取消向指定用户发送跨房间连麦请求。
接口原型
Objective C
- (void)cancelRequestJoinPK:(nullable NSString *)inviteeRoomId
userId:(nullable NSString *)inviteeUserId
extra:(nullable NSString *)extra
completion:(nullable RCRTCOperationCallback)completion;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
inviteeRoomId | NSString | 否 | 被邀请人所在房间号 |
inviteeUserId | NSString | 否 | 被邀请人userId |
extra | NSString | 否 | 附加信息,可随消息发送给被邀请人 |
completion | RCRTCOperationCallback | 否 | 动作的回调 |
代码示例
Objective C
[self.mainRtcRoom.localUser cancelRequestJoinPK:otherRoomId
userId:otherRoomUserId
extra:@""
completion:^(BOOL isSuccess, RCRTCCode code) {
// 处理取消结果
}];
应答邀请
被邀请方响应邀请方发出的跨房间连麦请求。
接口原型
Objective C
- (void)responseRoomPK:(nullable NSString *)inviterRoomId
userId:(nullable NSString *)inviterUserId
agree:(BOOL)agree
autoMix:(BOOL)autoMix
extra:(nullable NSString *)extra
completion:(nullable RCRTCOperationCallback)completion;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
inviterRoomId | NSString | 否 | 邀请人所在房间号 |
inviterUserId | NSString | 否 | 邀请人userId |
agree | BOOL | 是 | 是否同意加入副房间 |
autoMix | BOOL | 是 | 是否将被邀请人音视频资源发送到邀请人房间中合流 |
extra | NSString | 否 | 附加信息,可随消息发送给被邀请人 |
completion | RCRTCOperationCallback | 否 | 动作的回调 |
代码示例
Objective C
[self.mainRtcRoom.localUser responseRoomPK:otherRoomId
userId:otherRoomUserId
agree:YES
autoMix:YES
extra:@""
completion:^(BOOL isSuccess, RCRTCCode code) {
// 处理应答结果
}];
加入副房间
邀请方与被邀请 方在连麦邀请同意后加入副房间。
接口原型
Objective C
- (void)joinOtherRoom:(NSString *)roomId
completion:(nullable void (^)(RCRTCOtherRoom * _Nullable room, RCRTCCode code))completion;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
roomId | NSString | 是 | 副房间 Id,支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 最长 64 个字符 |
completion | void (^)(RCRTCOtherRoom * _Nullable room, RCRTCCode code) | 否 | 加入副房间的回调 |
代码示例
Objective C
[[RCRTCEngine sharedInstance] joinOtherRoom:roomId
completion:^(RCRTCOtherRoom * _Nullable room, RCRTCCode code) {
room.delegate = self;
// 处理加入副房间结果
}];
订阅资源
订阅多路远端指定音视频流。
接口原型
Objective C
- (void)subscribeStream:(nullable NSArray<RCRTCInputStream *> *)avStreams
tinyStreams:(nullable NSArray<RCRTCInputStream *> *)tinyStreams
completion:(nullable RCRTCOperationCallback)completion;