我需要确定哪个物理USB设备(通过VID / PID / SerialNumber)与任意CoreAduio AudioDevice相关。 CoreAudio允许查询各种设备属性,例如传输类型(在我的情况下为USB),UID(跨会话和机器的唯一)以及一些配置字符串。
IOKit和CoreAudio的音频部分都有音频设备的表示,但我不清楚如何弥合两者之间的差距。 (好像我应该能够查询AudioDevice的IOAudioDevice ......)
答案 0 :(得分:1)
我发现以下post from an Apple CoreAudio engineer描述了如何从IOUSBDeviceInterface
获取AudioDeviceID
:
两者之间没有直接映射。但这是最好的方法 将是:
- 从HAL
获取设备的UID字符串- 创建一个搜索IOAudioEngine对象的匹配字典
- 迭代匹配服务,直到找到具有与HAL相匹配的UID属性的服务
- 从这里走IORegistry,找到您正在寻找的USB对象
醇>