我正在开发一个在 OsX 上播放音频的应用程序。我可以使用 CodeAudio 列出可用的输出设备,但我在使用蓝牙耳机时遇到问题;即使设备已关闭且未连接,它仍然列在 OsX 声音首选项 Pane 中,因此被 CoreAudio 拾取为有效输出。 如果相应的设备尚未连接,我希望不显示蓝牙输出。
我尝试检查 CoreAudio 属性,例如:
kAudioDevicePropertyDeviceIsAlive
kAudioDevicePropertyDeviceIsRunning
kAudioDevicePropertyDeviceIsRunningSomewhere
但默认输出和蓝牙输出没有区别。
Coreaudio 可以进行这种检测吗?
最佳答案
为了 future 搜索者的利益,我过去的做法是:
- 枚举检测到的设备
- 查询每个 AudioDeviceID 的
kAudioDevicePropertyTransportType
属性 这将返回一个传输类型 ID 常量。 - 匹配
kAudioDeviceTransportTypeBluetooth
或kAudioDeviceTransportTypeBluetoothLE
类型
这样您就可以确定设备正在使用的连接类型(USB、Firewire 等)。您可以在 AudioHardwareBase.h
关于macos - 如何在 Mac OS X 中检测蓝牙音频设备是否已连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8185378/