如何在 Mac OS X 中检测是不是连接了蓝牙音频设备?
Posted
技术标签:
【中文标题】如何在 Mac OS X 中检测是不是连接了蓝牙音频设备?【英文标题】:How do I detect if a bluetooth audio device is connected in Mac OS X?如何在 Mac OS X 中检测是否连接了蓝牙音频设备? 【发布时间】:2011-11-18 16:10:16 【问题描述】:我正在开发一个在 OsX 上播放音频的应用程序。我可以使用 CodeAudio 列出可用的输出设备,但是蓝牙耳机有问题;即使设备已关闭且未连接,它仍会列在 OsX 声音首选项窗格中,因此被 CoreAudio 拾取为有效输出。 如果相应的设备尚未连接,我希望不显示蓝牙输出。
我尝试过检查 CoreAudio 的这些属性:
kAudioDevicePropertyDeviceIsAlive
kAudioDevicePropertyDeviceIsRunning
kAudioDevicePropertyDeviceIsRunningSomewhere
但默认输出和蓝牙输出没有区别。
Coreaudio 可以进行这种检测吗?
【问题讨论】:
我也想知道这个。你可能已经看到了:lists.apple.com/archives/coreaudio-api/2010/Oct/msg00171.html 【参考方案1】:为了将来的搜索者的利益,我过去的做法是:
枚举检测到的设备 查询每个 AudioDeviceID 的kAudioDevicePropertyTransportType
属性
这将返回一个传输类型 ID 常量。
匹配
kAudioDeviceTransportTypeBluetooth
或
kAudioDeviceTransportTypeBluetoothLE
类型
这样您就可以确定设备正在使用的连接类型(USB、Firewire 等)。您可以在AudioHardwareBase.h
中找到完整的传输类型列表
【讨论】:
以上是关于如何在 Mac OS X 中检测是不是连接了蓝牙音频设备?的主要内容,如果未能解决你的问题,请参考以下文章