2014-04-04 75 views
2

1.我需要列出所有设备名称和类型(播放或录制)。我怎样才能得到它们?如何获取Windows(DirectSound?ASIO?)音频设备列表?

2.我还需要确定设备是播放还是录制设备。

通过设备名称我的意思是在播放和录制选项卡(下面的屏幕截图)下可见的名称。我不熟悉Windows下的音频​​,我不知道这些设备是ASIO,DirectSound或其他。

enter image description here

我的应用程序应该是comaptybile与Windows Vista/7/8,所以我决定使用.NET 3.5,但我可以使用的Windows Vista/7/8支持的.NET版本。

编辑:我试图从WMI“SELECT * FROM Win32_SoundDevice”得到这些,但这不是我的意思。它返回硬件设备,而不是windows声音配置中可见的设备。

回答

1

使用How to enumerate audio out devices in c#

ManagementObjectSearcher objSearcher = new ManagementObjectSearcher(
     "SELECT * FROM Win32_SoundDevice"); 

ManagementObjectCollection objCollection = objSearcher.Get(); 

foreach (ManagementObject obj in objCollection) 
{ 
    foreach (PropertyData property in obj.Properties) 
    { 
     Console.Out.WriteLine(String.Format("{0}:{1}", property.Name, property.Value)); 
    } 
} 
+0

这不是我的意思。它返回硬件设备,而不是控制面板/声音中可见的硬件设备(请参见屏幕截图)。 – Kamil