跨房间连麦
跨房间连麦中需要区分主房间和副房间概念。主副房间是相对概念,定义如下:
- 主房间:本端在最开始加入的房间。
- 副房间:在连麦邀请被接受后,双方均需要加入对方房间。
跨房间连麦前需要双方都已经加入自己的主房间,未加入主房间前无法进行连麦的邀请和被邀请。
处理连麦邀请
在建立连麦前,需要由一位主播发出邀请,另一位主播作出同意或拒绝连麦的应答。
设置连麦事件回调监听
方法
JavaScript
engine.setOnJoinSubRoomRequestedListener();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| code | Number | 错误码,0 表示成功 |
| errMsg | String | 错误信息 |
示例代码
JavaScript
// 邀请其他用户跨房间连麦的回调
engine.setOnJoinSubRoomRequestedListener(({code, errMsg}) => {
if (code == 0) {
// 邀请其他用户跨房间连麦成功, 等待对方处理
console.log('连麦邀请发送成功');
} else {
// 邀请其他用户跨房间连麦失败
console.log('连麦邀请发送失败:', errMsg);
}
});
发起邀请
向指定用户发送跨房间连麦请求,调用 RCRTCEngine 对象的 requestJoinSubRoom 方法。请求发送成功后,被邀请人会通过 setOnJoinSubRoomRequestReceivedListener 回调收到通知。
方法
JavaScript
engine.requestJoinSubRoom();
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| roomId | String | 是 | 对方的房间 ID |
| userId | String | 是 | 对方用户 ID |
| autoLayout | Boolean | 是 | 是否采用悬浮布局。如为 true,服务端会在加入邀请方房间成功后,把受邀方的流资源合并到邀请方视图上(默认仅悬浮布局合流)。如受邀方未发布资源,则会在受邀方发布资源后进行视图合并。无论 autoLayout 为 true 或 false,双方都可以使用 setLiveMixCustomLayouts 方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。默认值:true |
| extra | String | 否 | 附加信息 |
示例代码
JavaScript
// 邀请其他用户跨房间连麦
engine.requestJoinSubRoom(roomId, userId);
console.log('连麦邀请已发送');
设置收到连麦邀请监听
方法
JavaScript
engine.setOnJoinSubRoomRequestReceivedListener();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| roomId | String | 对方的房间 ID |
| userId | String | 对方用户 ID |
| extra | String | 附加信息 |