跳到主要内容

同房间连麦

观众上麦

观众上麦本质上是切换身份变成当前房间的主播,然后以主播身份继续直播相关操作。

切换为主播

当观众需要上麦,跟房间内的其他主播互动时,调用 switchLiveRole 方法,参数传 RCRTCRole.LiveBroadcaster 切换身份为主播。

// 切换角色的回调
engine.setOnLiveRoleSwitchedListener(({role,code,errMsg}) => {
if (code == 0) {
// 切换成功
} else {
// 切换失败
}
});

// 调用切换角色
engine.switchLiveRole(RCRTCRole.LiveBroadcaster);

观众下麦

主播下麦本质上是切换身份变成当前房间的观众,然后以观众身份继续观看直播等相关操作。

切换为观众

当身份为主播时,调用 switchLiveRole 方法,参数传 RCRTCRole.LiveAudience 切换身份为观众。

提示

如果当前主播用户已通过跨房间连麦加入了其他房间,仍可成功切换为观众身份。此时 SDK 内部会帮其退出所有副房间,但不会结束本次连麦。如果需要结束连麦,请在切换角色前调用 leaveSubRoom 方法 disband 参数传 true 即可。

// 切换角色的回调
engine.setOnLiveRoleSwitchedListener(({role,code,errMsg}) => {
if (code == 0) {
// 切换成功
} else {
// 切换失败
}
});
// 调用切换角色
engine.switchLiveRole(RCRTCRole.LiveAudience);

订阅资源

直播用户切换身份后,默认会退订所有资源,请按需重新订阅。

  • 观众切换为主播成功后,可以用切换身份之前保存的远端发布资源信息来订阅远端资源。参见主播订阅资源
  • 主播切换为观众成功后,可以在远端发布合流资源的回调中订阅合流,远端主播发布合流资源的回调会在切换成功后被触发。也可以用之前保存的远端发布资源信息订阅远端主播的分流,详见以下文档:

房间内事件

当房间内的用户使用 switchLiveRole 方法上下麦时,同房间内的其他主播可以通过 setOnRemoteLiveRoleSwitchedListener 方法监听到远端用户切换身份。

如果用户订阅了一个主播的音视频流,当这个主播切为观众身份时,SDK 内部会主动取消订阅不存在的音视频流,您可以在此回调方法中,更新当前页面视图等操作。

// 远端用户切换角色的回调
engine.setOnRemoteLiveRoleSwitchedListener(({roomId,userId,role}) => {

});