2011-11-18 137 views
3

我正在研究在OsX上播放音频的应用程序。我可以用CodeAudio列出可用的输出设备,但我遇到蓝牙耳机问题;即使设备已关闭但未连接,它仍会列在OsX声音预设窗格中,因此CoreAudio会将其作为有效输出。 我想而不是显示蓝牙输出,如果相应的设备尚未连接。如何检测Mac OS X中是否连接了蓝牙音频设备?

我已经试过检查像CoreAudio的属性:

kAudioDevicePropertyDeviceIsAlive kAudioDevicePropertyDeviceIsRunning kAudioDevicePropertyDeviceIsRunningSomewhere

但有默认的输出和蓝牙输出之间没有什么区别。

Coreaudio可以检测到这种检测吗?

+0

我也想知道这一点。您可能已经看到了这个:http://lists.apple.com/archives/coreaudio-api/2010/Oct/msg00171.html –

回答

0

对于未来搜索的好处我已经在过去做的方式是:

  • 枚举检测设备
  • 查询的kAudioDevicePropertyTransportType属性每个AudioDeviceID 这将返回一个传输类型ID常量。
  • 匹配的 kAudioDeviceTransportTypeBluetoothkAudioDeviceTransportTypeBluetoothLE

这样,你可以决定连接的设备正在使用(USB,火线等)的类型。你可以找到运输类型的完整列表AudioHardwareBase.h