You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取可用audio route列表及当前正在使用的audio route

音频路由查询实现方案

以下是不同平台下获取可用音频路由、查询当前激活音频路由的实现方式:

安卓平台

依赖系统提供的AudioManager类实现相关功能:

  • 获取可用音频路由:调用getDevices(int flags)方法,flags传入AudioManager.GET_DEVICES_OUTPUTS即可获取所有可用输出设备列表,返回的AudioDeviceInfo实例可通过getType()匹配设备类型,对应常用常量如下:
    • TYPE_BLUETOOTH_A2DP:蓝牙音频设备
    • TYPE_WIRED_HEADSET:有线耳机
    • TYPE_EARPIECE:听筒
    • TYPE_SPEAKER:内置扬声器
  • 查询当前使用的路由:可注册AudioManager.ACTION_AUDIO_DEVICE_CHANGED广播实时监听路由切换,也可主动调用上述getDevices方法后,筛选isPreferred()返回值为true的设备,即为当前正在使用的输出路由。

核心代码示例:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
// 获取所有可用输出设备
AudioDeviceInfo[] availableDevices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
for (AudioDeviceInfo device : availableDevices) {
    int deviceType = device.getType();
    // 按业务需求匹配对应路由类型即可
}

注意:安卓平台需要提前申请MODIFY_AUDIO_SETTINGS权限才能调用相关接口。

iOS平台

依赖AVAudioSession类实现相关功能:

  • 获取可用音频路由:访问AVAudioSession实例的availableInputs属性,即可拿到所有可用的音频端口,端口类型对应常用枚举如下:
    • AVAudioSessionPortBluetoothA2DP:蓝牙音频设备
    • AVAudioSessionPortHeadphones:有线耳机
    • AVAudioSessionPortBuiltInReceiver:听筒
    • AVAudioSessionPortBuiltInSpeaker:内置扬声器
  • 查询当前使用的路由:访问AVAudioSession实例的currentRoute属性,其outputs数组中存储的即为当前激活的输出路由。

核心代码示例(Swift):

let audioSession = AVAudioSession.sharedInstance()
// 获取可用路由列表
let availableRoutes = audioSession.availableInputs
// 获取当前在用路由
let currentUsingRoute = audioSession.currentRoute

Windows平台

依赖Win32 API的MMDeviceEnumerator组件实现:

  • 获取可用音频路由:调用EnumAudioEndpoints方法,过滤状态为DEVICE_STATE_ACTIVE的设备即为可用输出路由。
  • 查询当前使用的路由:调用GetDefaultAudioEndpoint方法即可获取当前系统默认的激活输出路由。

macOS平台

依赖CoreAudio框架实现:

  • 获取可用音频路由:调用AudioObjectGetPropertyData接口,查询kAudioHardwarePropertyDevices属性即可枚举所有可用音频设备。
  • 查询当前使用的路由:查询kAudioHardwarePropertyDefaultOutputDevice属性即可获取当前激活的默认输出路由。

内容的提问来源于stack exchange,提问作者Faaatman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:36:03