如何获取可用输出音频源列表(扬声器、耳机、蓝牙)

Posted

技术标签:

【中文标题】如何获取可用输出音频源列表(扬声器、耳机、蓝牙)【英文标题】:How to get list of available output audio source ( Speaker, earphone, bluetooth ) 【发布时间】:2013-12-02 11:58:53 【问题描述】:

喜欢标题,我想知道如何获取我的 voip 应用程序的可用输出声音路由列表,或重现默认 ios 效果。目前我可以在用户拨打电话时启用/禁用扬声器,但如果用户连接了蓝牙耳机,我希望该用户可以选择使用默认输出源的路由。 如果用户连接了蓝牙设备,用户可以选择此选项,否则只有扬声器输出。

感谢任何建议、链接或教程。

【问题讨论】:

【参考方案1】:

您可以使用AVAudioSessioncurrentRoute 获取所有输出的列表,如下所示:

AVAudioSession *session = [AVAudioSession sharedInstance];
NSLog(@"Outputs: %@", [[session currentRoute] outputs]);

【讨论】:

【参考方案2】:

在 Swift 4 中

let audioSession = AVAudioSession.sharedInstance()
// outputs contains all current outport 
let outputs = audioSession.currentRoute.outputs 

【讨论】:

以上是关于如何获取可用输出音频源列表(扬声器、耳机、蓝牙)的主要内容,如果未能解决你的问题,请参考以下文章

从无线耳机录制音频并通过蓝牙扬声器播放

Android蓝牙耳机/扬声器音频切换

Android蓝牙耳机/扬声器音频切换

iOS HSP 关闭音频输出

在 Linux 上使用 bluealsa 从蓝牙耳机录制音频

如何监控设备的音频输出以判断声音是不是来自扬声器/耳机插孔?