当我使用默认驱动程序连接多个 USB 音频设备时,我通常会得到某种友好的设备描述,例如“nn-USB 音频编解码器”或其他内容,因此我目前没有引用特定硬件的唯一属性,例如制造商ID。我想确保在重新枚举或将硬件重新插入到不同端口的情况下,我的软件将自动识别映射到该硬件的已更改 Windows 音频设备。我有可能收集可用于确定物理硬件的更多 Windows 音频设备信息吗?
也许需要一点澄清:
我有两个或多个 USB 音频设备,不一定是同一产品或制造商。音频连接有不同的用途,所以我想确保我的软件始终使用相同的物理音频设备来完成不同的任务。当重新枚举发生时,这有时会失败(有时不改变物理 USB 端口连接,这是 Windows 的事情......)
理想情况下,我会通过单独的序列号来区分它们,这通常仅适用于存储设备。但是当我使用 Nir Sofer 的 USBDeview 等工具查看设备时,我可以检索到“物理”USB 拓扑。我有一个像“Hub 3, Port1”这样的属性。如果我可以将它映射到一个声音设备,我会从声音控制面板中看到的“nn-USB 音频编解码器”之类的音频音频 api 获得,我会非常高兴。
编辑2:
可能这个 [1] 帖子在这里有所帮助,但我仍然需要弄清楚如何获取 USB 端口 <-> Windwos Sounddevice 映射。