我试图使用n音讯创建多重声音输出的应用程序。我们已经安装了8和USB声卡。 n音讯让我用所有的8个,但我不能找出一个图案,用于确定哪个设备指数是卡。

该卡将被挂接到不同的硬件,从而确保你知道你正在使用的卡是很重要的。

我一直在试图使用WMI轮询信息,但是我似乎无法找到确定声音设备的顺序的任何信息。

<强>更新 我忘了,包括关于这个问题的一些信息。声音卡是通过一个12端口集线器挂接所有USB声卡。

有帮助吗?

解决方案

设备的顺序是非确定性的Windows的所有版本。对于Vista和上面,该装置通常由DSOUND GUID(更多或更少)排序,以便它们有效地随机。

其他提示

我假设你正在使用waveout的?您可以拨打WaveOut.GetCapabilities(deviceNumber)来获得设备的名称保持,这可能会帮助你。

这是我想出了到目前为止并为我们工作。

使用WMI你可以从Win32_SoundDevice设备ID。然后使用您可以访问在HKLM \ SYSTEM登记中心\ CURRENTCONTROLSET \ ENUM \“的DeviceID”并获得命名的“驱动程序”的字符串值。该值包含在端部的ClassGUID加上一个数。

示例: {4d36e96c-E325-11CE-BFC1-08002BE10318} \ 0015

如果您剥离,上数*(15)*所有的你的声音的设备和命令他们,也就是,该装置由n音讯列出用途WINMM.DLL的顺序。还存在用于这些声音设备的位置时,使用的DeviceID无论是在以相同的键的系统登录或从Win32_PNPEntity。

在我们的情况下,位置让我们确定哪个声音设备的USB集线器的端口插入。

看看这个MSDN文章的。它使用DirectSound的枚举音频设备:

http://msdn.microsoft.com/ EN-US /库/ bb318674(VS.85)的.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top