You need to enable JavaScript to run this app.
导航
开启音频选路
最近更新时间:2025.05.07 14:17:11首次发布时间:2022.05.20 17:00:07
我的收藏
有用
有用
无用
无用

在大规模音视频互动场景中,大量用户同时开麦发言时,可能会消耗大量带宽和设备性能,在该场景下建议开启音频选路功能。开启后,房间内用户的音频订阅关系由 RTC 智能托管,无需在客户端手动维护。RTC 会智能识别出部分音量较大的活跃发言用户,并将其音频流分发给房间内其他用户,减少每个客户端接收的音频流数量,降低带宽和资源消耗同时保障互动流畅性。

应用场景

场景场景特点核心痛点(无音频选路时)音频选路如何解决
云端会议上千人房间,参会者均可随时开麦发言并自由选择观看其他参会人的视频画面
  • 多人同时发言,客户端需接收所有音频流,导致带宽激增。
  • CPU 处理大量音频解码与混音,易过载。
  • 声音嘈杂,有效信息难辨,会议效率低。
  • 仅推送主要活跃发言者的音频流,降低带宽消耗,减轻设备负担;保障会议音频清晰,聚焦关键信息,提升沟通效率。
    互动娱乐上万人房间,互动嘉宾人数可超 500 人,观众可申请与嘉宾上麦互动
  • 数百路音频流需下发海量听众,服务端带宽和客户端处理压力大,服务器带宽成本高昂。
  • 音频并发易致高延迟、卡顿,影响实时互动。
  • 仅分发少量核心活跃音频流至所有听众,大幅节约服务器带宽成本,保障听众端流畅接收,支持并提升超大规模并发互动的体验和可行性。

    使用须知

    开启音频选路功能后,请注意以下事项:

    • 房间内用户和媒体流容量也会提升,详见用户和媒体流上限

      说明

      • 房间内媒体流数量到达上限后,调用 PublishStream / PublishScreen 会返回 -1080 错误码。Web 端没有对应的错误码,但会触发发布失败。
      • 用户的订阅流数量到达上限后,调用 SubscribeStream / SubscribeScreen 会返回 -1070 错误码。Web 端没有对应的错误码,但会触发订阅失败。
    • 关于音视频订阅
      • 视频订阅:视频订阅关系仍需要在客户端自行维护。
      • 音频订阅:
        • Native 端:支持取消订阅对方音频。例如,A 取消订阅 B 的音频,即使 B 的音频被选为活跃用户并推送,A 也不会收听到 B 的音频。
        • Web 端:不支持取消订阅某用户音频。
    • 生效房间:仅对新创建的房间生效,不会影响已存在的房间模式。
    • 启用后影响:启用音频选路后,当房间内用户数超过 5 人时,部分 API 和回调的行为会发生变化。具体影响,请参见启用音频选路对相关接口的影响

    开启或关闭音频选路

    1. 登录 RTC 控制台
    2. (可选)如果你还没创建应用,请先创建 RTC 应用
      应用创建成功后,音频选路默认为关闭状态。

      推荐使用不同的 appID 开发适用于不同场景的音视频应用。是否开启音频选路的应用场景差别较大,尽量避免在用户使用时进行切换。

    3. 进入功能配置 > 房间模式,选择目标应用,按需开启或关闭音频选路

    音频选路对 API/回调的影响

    开启音频选路后,且房间内用户数大于 5 时,以下 API 和回调的预期行为有如下变化。

    不同平台的实现步骤相同,但接口名称、参数名称可能略有差异。以下指南以 Windows RTC SDK 为例,参考对应平台的 API 文档获取更多信息。

    受影响 API

    接口
    关闭音频选路开启音频选路
    joinRoom (isAutoSubscribeAudio = true)自动订阅音频。无效,音频订阅关系由 RTC 系统智能托管。
    subscribeStream订阅指定用户音视频流。视频:与关闭音频选路时相同。
    音频:无需调用,音频订阅关系由 RTC 系统智能托管。

    受影响回调

    部分回调的行为将发生变化,具体如下表。你需要根据这些变化,调整相应的应用端逻辑。

    接口
    关闭音频选路开启音频选路
    onUserJoined远端可见用户加入房间,或房内不可见用户切换为可见的回调。房间内可见用户数 >500 后,该回调不触发。
    如果你需要完整的房间内用户名单,需要自行维护用户列表。
    onUserLeave远端可见用户下线或转为隐身房间内可见用户数 >500 后,该回调不触发
    onRoomStats
    (Web 端无此回调)
    2 秒一次的房间内通话统计信息回调房间内可见用户数 >500 后,回调的 RtcRoomStats{user_count} 值无效
    onUserPublishStream房间内新增远端摄像头/麦克风采集的媒体流回调只能收到视频流触发的相关回调
    onUserUnpublishStream远端用户取消发布回调只能收到视频流触发的相关回调
    onUserPublishScreen房间内新增屏幕共享流回调只能收到视频流触发的相关回调
    onUserUnpublishScreen远端用户取消发布屏幕共享流回调只能收到视频流触发的相关回调
    onNetworkQuality报告房间内用户的网络质量评分回调有视频流的用户信息或远端活跃用户的网络质量评分
    onRemoteStreamStats订阅的远端用户发布的流在周期内的网络质量信息。Native 端回调有视频流的用户信息或远端活跃用户的音频流传输信息。
    Web 端不回调音频数据信息,视频与关闭音频选路行为一致。
    onRemoteAudioPropertiesReport订阅的远端用户的音频信息。只回调远端活跃用户的音频信息。
    onUserStartAudioCapture远端用户开启音频采集开启音频选路后,不会触发,与房间内用户数无关。
    onUserStopAudioCapture远端用户停止音频采集开启音频选路后,不会触发,与房间内用户数无关。
    onUserStartVideoCapture远端用户开启视频采集如果远端用户未发布视频流,不会收到该回调。如果远端用户发布视频流,则该回调将伴随 onUserPublishStream 触发一次。当监听 onUserStartVideoCaptureonUserPublishStream 时,可以认为远端已经开启视频采集。
    onUserStopVideoCapture远端用户停止视频采集不会触发。当远端用户停止视频采集时,会触发 onUserUnpublishStream。当监听到 onUserUnpublishStream 时,可以认为远端已经停止视频采集。

    功能变更日志

    1. Native,Electron 和 Flutter SDK v3.39 开始支持本功能。
    2. Web SDK v4.49 开始支持本功能。
    3. 2023 年 6 月 8 日起,RTC 不再区分房间模式,只区分是否开启音频选路。
      如果此前你已经在控制台开启相关配置,后台会自动为你切换到对应的配置。你也可以在下表中查看变更前后的配置对应关系。
    变更前变更后
    普通模式(不开启音频选路)不开启音频选路
    普通模式(开启音频选路)开启音频选路
    大会模式开启音频选路
    大会模式 – 游戏场景不开启音频选路