在同一个房间内,大量用户需要同时参与音视频互动,例如以下场景。
云端会议 单个 RTC 房间内总人数达上千人,所有参会者均可参与音视频互动,即,随时开麦发言、开启摄像头,并自由选择观看其他参会人的视频画面。
互动娱乐 在纯语音语聊房场景中,单个 RTC 房间内总人数可高达上万人,其中,台上互动嘉宾人数超 500 人。观众也可以通过需要开麦权限,上台和嘉宾进行音视频互动。
你已经集成 v3.39.1 或更高版本的 RTC SDK,实现了基本的音视频通话。
音频选路:当同时参与音视频互动的嘉宾较多时,建议开启音频选路功能。此后,房间中用户的音频订阅关系交由 RTC 智能托管,无需在客户端手动维护,RTC 将智能决策出房间中音量较大的部分用户,并将这些用户的音频流发送给房间内的其他用户。
说明:开启音频选路时
- 视频订阅关系仍需要在客户端自行维护。
- 支持取消订阅对方音频。例如, A 取消订阅 B 的音频,那么,即使 B 的音频被选为活跃用户并推送,A 也不会收听到 B 的音频。
房间模式:不同的房间模式具有如下特点:
普通模式:可以选择是否开启音频选路。
大会模式:开启大会模式自动开启音频选路功能。相对于普通模式下的音频选路功能,大会模式下,房间的用户容量更大,可发布的媒体流数量更多,同一用户可订阅媒体流数量更多。
大会模式 - 游戏场景:适用于纯音频场景,不支持开启音频选路。
不同房间模式下的用户和媒体流容量详见 用户和媒体流上限。
说明:我们推荐使用不同的 appID 开发适用于不同场景的音视频应用。普通模式和大会模式的应用场景差别较大,尽量避免在用户使用时进行切换。
大会模式:点击大会模式。
音频选路:点击音频选路。 此后,当房间内的可见用户数超过 5 人时,音频选路启动。
说明:大会模式和音频选路启动后,可以按照上述步骤重新切换回普通模式。
大会模式或音频选路功能开启后,以下 API 和回调的预期行为与普通模式下的行为有如下差异。
说明:不同平台的实现步骤相同,但接口名称、参数名称可能略有差异。以下指南以 Windows RTC SDK 为例,参考对应平台的 API 文档获取更多信息。
| 普通模式(不开启音频选路) | 开启音频选路/大会模式 | |
|---|---|---|
joinRoom (isAutoSubscribeAudio = true) | 自动订阅音频 | 无效。 |
subscribeStream | 订阅指定用户音视频流 | 视频:与普通模式相同 |
| 普通模式(不开启音频选路) | 开启音频选路/大会模式 | |
|---|---|---|
远端可见用户加入房间,或房内不可见用户切换为可见的回调。 | 房间内可见用户数 >500 后,该回调不触发 | |
| onUserLeave | 远端可见用户下线或转为隐身 | 房间内可见用户数 >500 后,该回调不触发 |
| OnRoomStats | 2 s 一次的房间内通话统计信息回调 | 房间内可见用户数 >500 后,回调的 RtcRoomStats{user_count} 值无效 |
| onUserPublishStream | 房间内新增远端摄像头/麦克风采集的媒体流回调 | 只能收到视频流触发的相关回调 |
| onUserUnpublishStream | 远端用户取消发布回调 | 只能收到视频流触发的相关回调 |
| onUserPublishScreen | 房间内新增屏幕共享流回调 | 只能收到视频流触发的相关回调 |
| onUserUnpublishScreen | 远端用户取消发布屏幕共享流回调 | 只能收到视频流触发的相关回调 |
| onNetworkQuality | 报告房间内用户的网络质量评分 | 回调有视频流的用户信息或远端活跃用户的网络质量评分 |
| onRemoteStreamStats | 订阅的远端用户发布的流在周期内的网络质量信息。 | 回调有视频流的用户信息或远端活跃用户的音频流传输信息。 |
| onRemoteAudioPropertiesReport | 订阅的远端用户的音频信息。 | 只回调远端活跃用户的音频信息。 |
房间内媒体流数量到达上限后,调用 PublishStream 或 PublishScreen 将返回 -1080 错误码
当前用户的订阅流数量到达上限后,调用 SubscribeStream 或 SubscribeScreen 将返回-1070 错误码
如有其他问题,请联系咨询售前或技术支持团队。