同房间连麦
观众上麦
观众上麦本质上是切换身份变成当前房间的主播,然后以主播身份继续直播相关操作。
切换为主播
当观众需要上麦,跟房间内的其他主播互动时,调用 switchLiveRole
方法,参数传 RCRTCRole.live_broadcaster
切换身份为主播。
// 切换角色的回调
engine.onLiveRoleSwitched = (RCRTCRole role, int code, String? errMsg) {
if (code == 0) {
// 切换成功
} else {
// 切换失败
}
};
// 调用切换角色
engine.switchLiveRole(RCRTCRole.live_broadcaster);
观众下麦
主播下麦本质上是切换身份变成当前房间的观众,然后以观众身份继续观看直播等相关操作。
切换为观众
当身份为主播时,调用 switchLiveRole
方法,参数传 RCRTCRole.live_audience
切换身份为观众。
提示
如果当前主播用户已通过跨房间连麦加入了其他房间,仍可成功切换为观众身份。此时 SDK 内部会帮其退出所有副房间,但不会结束本次连麦。如果需要结束连麦,请在切换角色前调用 leaveSubRoom
方法 disband
参数传 true
即可。
// 切换角色的回调
engine.onLiveRoleSwitched = (RCRTCRole role, int code, String? errMsg) {
if (code == 0) {
// 切换成功
} else {
// 切换失败
}
};
// 调用切换角色
engine.switchLiveRole(RCRTCRole.live_audience);
订阅资源
直播用户切换身份后,默认会退订所有资源,请按需重新订阅。
- 观众切换为主播成功后,可以用切换身份之前保存的远端发布资源信息来订阅远端 资源。参见主播订阅资源。
- 主播切换为观众成功后,可以在远端发布合流资源的回调中订阅合流,远端主播发布合流资源的回调会在切换成功后被触发。也可以用之前保存的远端发布资源信息订阅远端主播的分流,详见以下文档:
房间内事件
当房间内的用户使用 switchLiveRole
方法上下麦时,同房间内的其他主播可以通过 onRemoteLiveRoleSwitched
方法监听到远端用户切换身份。
如果用户订阅了一个主播的音视频流,当这个主播切为观众身份时,SDK 内部会主动取消订阅不存在的音视频流,您可以在此回调方法中,更新当前页面视图等操作。
// 远端用户切换角色的回调
Function(String roomId, String userId, RCRTCRole role)? onRemoteLiveRoleSwitched;