You need to enable JavaScript to run this app.
导航
移动端设置音频路由
最近更新时间:2025.10.16 10:06:06首次发布时间:2022.08.26 17:16:47
复制全文
我的收藏
有用
有用
无用
无用

功能变更日志

  1. 自客户端 SDK V3.60,由于音频场景枚举值和音量模式配置规则发生变化,setAudioRoute 的生效音频场景也发生了变化。音量模式由音频场景、音频路由、是否开启音频采集和用户角色决定,参见媒体音量和通话音量
  2. 自客户端 SDK V3.50,建议使用 setDefaultAudioRoute 设定默认的音频路由设备。
  3. 自客户端 SDK V3.42,setDefaultAudioRoute 选择设备的听筒或扬声器作为默认音频路由。setAudioRoute 支持更多音频设备类型,例如有线耳机、蓝牙耳机等,且只支持音量模式为通话时生效,即音频场景设置为 AUDIO_SCENARIO_COMMUNICATION
  4. 自客户端 SDK V3.38,支持本功能。

功能简介

本文以安卓端接口名称为例。

音频路由指的是安装在设备上的 App 用于播放音频的设备。主要有以下两种:

  • 内置播放设备。一般包括扬声器或听筒。立体声扬声器位于手机底部,声音比较大,可以实现“免提”的功能。听筒位于手机顶部,声音比较小,只有将耳朵凑近才能听清楚,隐私性较好,适合用于接听电话。
  • 外接设备。包括有线耳机、蓝牙耳机等。

切换默认音频路由和接入外接设备时的路由切换行为

RTC SDK 内置了默认音频路由判定和切换策略。策略如下:

  • 没有外接设备时,系统将选取默认音频路由作为播放设备。默认音频路由(扬声器/听筒)可以通过调用 setDefaultAudioRoute 进行指定。
  • 当接入第一个外接设备时,RTC SDK 默认将播放设备更新为此设备。当接入多个外接设备时,RTC SDK 默认通过最后一个接入的设备播放。你可以通过 onAudioRouteChangedgetAudioRoute 获取变化后的音频路由设备。
  • 当外界音频路由设备断开时,SDK 将按照设备接入顺序,选取最后接入的外接设备作为音频路由;当断开最后一个外接设备时,音频路由将立即切换为默认设备。

在大多数场景中,你只需要通过 setDefaultAudioRoute 指定默认音频路由(扬声器/听筒),SDK 会根据设备插拔自动切换音频路由。

手动切换音频路由

如果以上默认的音频路由判定和切换策略不能满足你的场景需求,特别在接入外接设备时,需要将音频路由强制切换到扬声器或听筒等其他路由,参考以下用法:

  1. 调用 setAudioRoute 将当前音频路由切换到指定设备。仅当音频路由处于通话模式下生效。你可以通过系统 API 获取当前音频路由的音量模式。
  2. 成功切换音频路由后,将触发 onAudioRouteChanged 回调提示音频路由更改。

说明

  • Android 设备

    • 在部分 Android 机型上,同时接入有线耳机和蓝牙耳机后,强制切换到有线耳机时,实际的音频输出可能被系统优先路由到通过 A2DP 协议连接的蓝牙耳机。这些机型在媒体模式下的系统音频策略是将 A2DP 设备作为播放的首选设备。
    • 只接入有线耳机时,即使处于通话模式下,也无法将音频路由切换到内置听筒。
  • iOS 设备
    仅支持强制切换为内置扬声器。

API 参考

AndroidiOS
设置默认音频路由setDefaultAudioRoutesetDefaultAudioRoute:
强制切换音频路由setAudioRoutesetAudioRoute:
获取当前的音频路由getAudioRoutegetAudioRoute