Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中获取麦克风的全名?_C# - Fatal编程技术网

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

如何在C#中获取麦克风的全名?,c#,C#,我想知道所有连接的麦克风的全名。我在谷歌上搜索答案,但没有一个答案能让我满意 让我举几个例子: 一, 所有这些getter都显示:“设备音频USB”或“与高清标准兼容的设备” 二, 同样的回答:“设备音频USB”或“设备兼容高清标准” 我想知道全名。我的意思是,类似于“森海塞尔麦克风USB”。有可能吗?我发现:但其中的一个链接已断开,我没有看到任何用于c#(使用DirectSoundCaptureEnumerate)的dsound.lib。 我遗漏了什么吗?或者还有其他选择吗?试试Naudio

我想知道所有连接的麦克风的全名。我在谷歌上搜索答案,但没有一个答案能让我满意

让我举几个例子:

一,

所有这些getter都显示:“设备音频USB”或“与高清标准兼容的设备”

二,

同样的回答:“设备音频USB”或“设备兼容高清标准”

我想知道全名。我的意思是,类似于“森海塞尔麦克风USB”。有可能吗?我发现:但其中的一个链接已断开,我没有看到任何用于c#(使用DirectSoundCaptureEnumerate)的dsound.lib。 我遗漏了什么吗?或者还有其他选择吗?

试试Naudio


@AnkurTripathi答案是正确的,但它返回的名称最多包含32个字符。如果任何人不希望受到此限制,那么最好使用枚举器:

using NAudio.CoreAudioApi;

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

它非常适合我。

您的设备的全名在Windows中的任何位置都可见吗?(设备管理器等)@Heinzi不,我在设备管理器中没有看到设备的全名。这是否意味着这是不可能的?好吧,如果Windows不知道完整的设备名称,我认为没有办法检索它。(但我不是Windows API专家,所以如果有人能证明我错了,我会很高兴。)我认为你是对的。我切换了USB接口,现在使用第二个示例和@AnkurTripathi的示例得到了名称。答案与上面提到的相同。在本例中,ProductName只有31个字符。@Darooks是您的设备的全名,在Windows中的任何位置都可见?-如果没有-没有更多信息available@Cadburry我必须更换USB接口。现在设备管理器中有全名。我以前没有注意到它。@Ankurtripath答案正确,但它返回的设备名称包含31个字符,是否可以在没有此限制的情况下获取名称?您能告诉我设备名称是什么,以及您的代码返回的是什么吗?这对我来说是一件好事,而且要知道我的全名
WaveInCapabilities[] devices = GetAvailableDevices();        
foreach(device in devices)
{
    MessageBox.Show(device.ProductName);
}
for (int n = 0; n < WaveIn.DeviceCount; n++)
{
    this.recordingDevices.Add(WaveIn.GetCapabilities(n).ProductName);
    comboBoxAudio.Items.Add(WaveIn.GetCapabilities(n).ProductName);
}
MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
foreach (MMDevice device in enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active))
   {
           this.recordingDevices.Add(device.FriendlyName);
   }
using NAudio.CoreAudioApi;

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