繁体   English   中英

如何在C#中获取麦克风的全名?

[英]How to get full name of microphone in C#?

我想得到所有连接麦克风的全名。 我在谷歌搜索找到答案,但没有答案满足我。

让我举几个例子:

1。

ManagementObjectSearcher mo = new ManagementObjectSearcher("select * from Win32_SoundDevice");

foreach (ManagementObject soundDevice in mo.Get())
{               
    MessageBox.Show(soundDevice.GetPropertyValue("Caption").ToString());  
    // or 
    MessageBox.Show(soundDevice.GetPropertyValue("Description").ToString());  
    //or
    MessageBox.Show(soundDevice.GetPropertyValue("Manufacturer").ToString()); 
    //or 
    MessageBox.Show(soundDevice.GetPropertyValue("Name").ToString());
    //or
    MessageBox.Show(soundDevice.GetPropertyValue("ProductName").ToString());                     
}

所有这些getter都显示:“Device Audio USB”或“Device with High Definition standard”。

2。

WaveInCapabilities[] devices = GetAvailableDevices();        
foreach(device in devices)
{
    MessageBox.Show(device.ProductName);
}

答案相同:“Device Audio USB”或“与高清标准兼容的设备”。

我想得到全名。 我的意思是,像“Sennheiser麦克风USB”。 它甚至可能吗? 我发现: 获取waveIn设备的全名,但其中的链接被破坏,我没有看到任何用于c#的dsound.lib(使用DirectSoundCaptureEnumerate)。 我错过了什么吗? 或者还有其他选择吗?

@AnkurTripathi答案是正确的,但它返回一个最多包含32个字符的名称。 如果有人不想要这个限制,那么最好的想法是使用一个enumarator:

using NAudio.CoreAudioApi;

MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
var devices = enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active);            
foreach (var device in devices)
    MessageBox.Show(device.friendlyName);

它对我来说很完美。

试试Naudio https://naudio.codeplex.com/

for (int n = 0; n < WaveIn.DeviceCount; n++)
{
    this.recordingDevices.Add(WaveIn.GetCapabilities(n).ProductName);
    comboBoxAudio.Items.Add(WaveIn.GetCapabilities(n).ProductName);
}

获取全名(FriendlyName):

MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
foreach (MMDevice device in enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active))
   {
           this.recordingDevices.Add(device.FriendlyName);
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM