同房间连麦
同房间连麦是指让已加入直播房间中的观众切换为主播身份,并参与直播。
观众上麦(升级为主播房间)
使用 RCRTClient 实例的 upgradeToAnchorRoom 方法,传入当前观众用户的 RCAudienceLivingRoom 实例,SDK 会返回主播角色的房间 RCLivingRoom 实例。
接口
typescript
rtcClient.upgradeToAnchorRoom(audienceRoom)
参数说明
| 参数 | 类型 | 必填 | 说明 | 
|---|---|---|---|
| audienceRoom | RCAudienceLivingRoom | 是 | 观众房间 room 实例 | 
示例代码
typescript
/**
 * @param audienceRoom 观众房间 room 实例,调用 rtcClient.joinLivingRoomAsAudience 或 rtcClient.downgradeToAudienceRoom 方法返回的 room
 * @since @rongcloud/plugin-rtc@5.6.8 增加返回 userIds, tracks, CDNEnable,房间内已有的人员、资源、CDN 状态不再从 room 监听处抛出
 * @return userIds 返回加房间时,房间内的其他人
 * @return tracks 返回加房间时,房间内其他人发布的资源
 * @return CDNEnable 返回加房间时,房间内 CDN 开关是否开启
 */
const { room: anchorRoom, code, userIds, tracks, CDNEnable } = await rtcClient.upgradeToAnchorRoom(audienceRoom)
// 若升级失败,anchorRoom 为 undefined
if (code !== RCRTCCode.SUCCESS) {
  console.log('upgrade failed:', code)
}
RCAudienceLivingRoom 实例升级为主播房间 RCLivingRoom 实例后,需要同步按需调用房间事件监听器或质量数据监听器。上麦成功后,用户身份与主播并无区别,可进行与主播同等的接口调用。详见主播端。
观众下麦(降级为观众房间)
- 
在降级前请释放摄像头资源。 
- 
使用 RCRTClient实例的 downgradeToAudienceRoom 方法,传入当前主播用户的 RCLivingRoom 实例,SDK 会返回观众角色的房间 RCAudienceLivingRoom 实例。接口typescriptrtcClient.downgradeToAudienceRoom(anchorRoom)参数说明参数 类型 必填 说明 anchorRoom RCLivingRoom 是 主播房间实例 示例代码typescript/**
 * 使用场景为主播降级观众
 * @param anchorRoom 主播加入房间成功后返回的 room
 */
 // 从 5.2.3 开始,加入房间时可返回 RTCTracks、MCUTracks、CDNUris、userIds
 const { room: audienceRoom, RTCTracks, MCUTracks, CDNUris, userIds, code } = await rtcClient.downgradeToAudienceRoom(anchorRoom)
 // 若降级失败,会返回 code, room 为 undefined
 if (code !== RCRTCCode.SUCCESS) {
 console.log('downgrade failed:', code)
 }从 5.2.3 版本开始, downgradeToAudienceRoom方法会返回以下房间内数据:- RTCTracks:房间内已有的主播资源
- MCUTracks:房间内已有的合流资源
- CDNUris:房间内置 CDN 信息
- userIds:房间内主播列表
 降级为观众房间后的方式详见观众端。 
- 
如果 SDK 版本 < 5.2.3,降级成功后需同步注册观众房间事件监听器。 
订阅 liveUrl 资源的观众如何参与连麦
如果观众不加入 RTC 房间,直接通过订阅 liveUrl 观看直播,参与连麦的流程如下:
- 使用初始化时获取的 RCRTCClient 实例的 joinLivingRoom 方法加入 RTC 房间。加入成功后,该用户即具备主播身份。
- 获取资源,并以主播角色发布资源、订阅资源。详见主播端
- 如果连麦结束,使用 RCRTCClient 实例的 leaveRoom方法下麦。