在OSX上查找与CoreAudio设备关联的USB VID / PID

时间:2014-07-24 21:50:37

标签: macos usb core-audio iokit

我需要确定哪个物理USB设备(通过VID / PID / SerialNumber)与任意CoreAduio AudioDevice相关。 CoreAudio允许查询各种设备属性,例如传输类型(在我的情况下为USB),UID(跨会话和机器的唯一)以及一些配置字符串。

IOKit和CoreAudio的音频部分都有音频设备的表示,但我不清楚如何弥合两者之间的差距。 (好像我应该能够查询AudioDevice的IOAudioDevice ......)

1 个答案:

答案 0 :(得分:1)

我发现以下post from an Apple CoreAudio engineer描述了如何从IOUSBDeviceInterface获取AudioDeviceID

  

两者之间没有直接映射。但这是最好的方法   将是:

     
      
  1. 从HAL
  2. 获取设备的UID字符串   
  3. 创建一个搜索IOAudioEngine对象的匹配字典
  4.   
  5. 迭代匹配服务,直到找到具有与HAL相匹配的UID属性的服务
  6.   
  7. 从这里走IORegistry,找到您正在寻找的USB对象
  8.