Skip to main content
AudioRouterManager 负责管理扬声器 / 听筒 / 有线耳机 / 蓝牙耳机之间的音频输出路由。本页为接口参考;完整的初始化顺序、自动切换策略与最佳实践请见 音频路由使用

获取与释放

通过 RTCEngine 获取单例,不要自行 new

实例方法

setAudioRouterCalllback(callback)

方法说明:设置音频路由回调监听。
参数说明:
  • callbackAudioRouterCallback,路由变化回调实现。
返回值说明:无(void)。
方法名为 setAudioRouterCalllbackCalllback 含 3 个 l),请按源码原样调用。

setAutoChangeAudioRouter(isAutoChange)

方法说明:设置是否自动切换音频路由(简化版)。等价于 setAutoChangeAudioRouter(isAutoChange, false, false),即听筒优先级高于扬声器、蓝牙耳机优先级高于有线耳机。
参数说明:
  • isAutoChangebooleantrue 由内部自动选路,false 仅监听不自动切换。
返回值说明:无(void)。

setAutoChangeAudioRouter(isAutoChange, isPrioritySpeaker, isPriorityWiredEarphone)

方法说明:设置自动切换策略(完整版)。
参数说明:
  • isAutoChangeboolean,是否自动切换路由。
  • isPrioritySpeakerbooleantrue 扬声器优先于听筒,false 听筒优先于扬声器。
  • isPriorityWiredEarphonebooleantrue 有线耳机优先于蓝牙耳机,false 蓝牙耳机优先于有线耳机。
返回值说明:无(void)。

setMode(mode)

方法说明:设置音频模式。取值以 AudioManager 为准(如 MODE_IN_COMMUNICATION)。Android 6.0+ 下 init() 不会自动设置模式,建议每次切换业务场景前主动调用。
参数说明:
  • modeintAudioManager 音频模式。
返回值说明:无(void)。

init()

方法说明:启动音频路由监听。建议在获取实例、设置回调与策略之后调用。
参数说明:无。
返回值说明:无(void)。

switchAudioRouter(type)

方法说明:手动切换到指定输出设备。传入 UN_KNOW 表示按当前自动选路策略重新选择最合适的路由。
参数说明:
  • typeAudioOutputDeviceType,目标输出设备类型。
返回值说明:无(void)。

release(changeMode)

方法说明:释放音频路由资源,停止监听并注销回调。
参数说明:
  • changeModebooleantrue 释放时把音频模式恢复为 MODE_NORMAL 并切回扬声器;false 不主动恢复模式。
返回值说明:无(void)。
rtcEngine.releaseAudioRouterManager() 内部调用 release(true)

getExitAudioOutputDevices()

方法说明:获取当前存在(可选)的输出设备集合。
参数说明:无。
返回值说明:HashMap<AudioOutputDeviceType, AudioDeviceInfo>,设备类型到设备信息的映射。

getActiveAudioOutputDevice()

方法说明:获取当前实际生效的输出设备。
参数说明:无。
返回值说明:Pair<AudioOutputDeviceType, AudioDeviceInfo>first 为设备类型,second 为设备信息。

getAudioRouterCallback()

方法说明:获取当前已设置的路由回调。
参数说明:无。
返回值说明:AudioRouterCallback,当前回调实例,可能为 null

getAudioManager()

方法说明:获取内部持有的系统 AudioManager
参数说明:无。
返回值说明:AudioManager

requestAudioFocus()

方法说明:请求音频焦点。
参数说明:无。
返回值说明:int,请求结果(同系统 AudioManager.requestAudioFocus 返回值)。

releaseAudioFocus()

方法说明:释放音频焦点。
参数说明:无。
返回值说明:int,释放结果。

setFocusChangeListener(listener)

方法说明:设置外部音频焦点变化监听器。
参数说明:
  • listenerAudioManager.OnAudioFocusChangeListener,焦点变化监听器。
返回值说明:无(void)。

静态方法

getValidBluetoothName(curName, context, callback)

方法说明:纠正部分机型通过 AudioDeviceInfo.getProductName() 获取到的不准确蓝牙名称。Android 12+ 需关注 BLUETOOTH_CONNECT 权限。
参数说明:
  • curNameString,当前获取到的蓝牙名称。
  • contextContext,上下文。
  • callbackValidBluetoothNameCallback,纠正后的名称回调。
返回值说明:无(void)。

枚举 AudioOutputDeviceType

回调接口

AudioRouterCallback

  • exitOutputDeviceChange:当前“可选”的输出设备列表发生变化(插拔耳机、连接/断开蓝牙等)。
  • activeOutputDeviceChange:当前“实际生效”的输出设备发生变化,UI 展示当前设备应以此为准。
  • onAudioBecomingNoisy:路由切换后系统可能产生噪音(如耳机拔出转外放),可在此暂停播放或降低音量。

ValidBluetoothNameCallback

  • onValidBluetoothName:返回纠正后的蓝牙设备名称。