如何在 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 常量。 匹配 kAudioDeviceTransportTypeBluetoothkAudioDeviceTransportTypeBluetoothLE类型

这样您就可以确定设备正在使用的连接类型(USB、Firewire 等)。您可以在AudioHardwareBase.h中找到完整的传输类型列表

【讨论】:

以上是关于如何在 Mac OS X 中检测是不是连接了蓝牙音频设备?的主要内容,如果未能解决你的问题,请参考以下文章

Git 和 Mac OS X 上的元音变音问题

苹果电脑如何连接鼠标

sh 在Mac OS X上重新启动蓝牙守护程序而不重新启动

sh 在Mac OS X上重新启动蓝牙守护程序而不重新启动

MAC OS X下如何配置TCP_KEEPALIVE

如何检测 NaN 在哪里传递给 Mac OS X 10.9 上的 CoreGraphics API