跨房间连麦
跨房间连麦中需要区分主房间和副房间概念。主副房间是相对概念,定义如下:
- 主房间:本端在最开始加入的房间,即 RCRTCRoom。
- 副房间:在连麦邀请被接受后,双方均需要加入对方房间。对方房间即:RCRTCOtherRoom。
跨房间连麦前需要双方都已经加入自己的主房间,未加入主房间前无法进行连麦的邀请和被邀请。
两种房间的类都有对应的代理 IRCRTCRoomEventsListener 和 IRCRTCOtherRoomEventsListener 用来区分不同类型房间的回调。
主流程
发起邀请
向指定用户发送跨房间连麦请求,使用加入房间成功回调返回的 RCRTCRoom
类获取 RCRTCLocalUser
对象,调用 requestJoinOtherRoom
方法。
-
代码示例:
/**
* 向指定用户发送跨房间连麦请求
* <P>
* 1: inviterAutoMix为true时:
*
* 1.1:如果被邀请方在加入邀请方房间之前发布了资源,当被邀请方加入邀请者房间成功后,服务器会把被邀请方流资源合并到邀请方视图 ·(默认仅悬浮布局合流)上。
*
* 1.2:如果被邀请方在加入邀请方房间之前没有发布过资源,将会在被邀请方发布资源成功后,服务器会把被邀请方流资源合并到邀请方视图(默认仅悬浮布局合流)上。
*
* 2:无论为true或false,双方都可以使用{@link RCRTCLiveInfo#setMixConfig(RCRTCMixConfig, IRCRTCResultCallback)} 方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。
* <P/>
*/
RCRTCRoom.getLocalUser().requestJoinOtherRoom(inviteeRoomId, inviteeUserId, inviterAutoMix, "extra", new IRCRTCResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(RTCErrorCode errorCode) {
}
}); -
API 参考: