How to get audio input from usb microphone with C# and NAudio
我正在尝试使用 NAudio 从 USB 设备获取音频输入。
我正在使用 WavIn 类,但像这样:
1
2 |
但我不知道如何获取我的 micro 设备号。
我知道这种方法:
1
|
WaveIn.GetCapabilities();
|
但是没有my micro,因为它不被识别为麦克风。
我也可以像 thi 一样获得我的 USB 设备:
1
2 3 4 5 6 7 8 |
System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(@"Select * From Win32_USBHub");
var devices = searcher.Get(); foreach(var d in devices) { var deviceId = (string)d.GetPropertyValue("DeviceID"); var pnpDeviceID = (string)d.GetPropertyValue("PNPDeviceID"); var description = (string)d.GetPropertyValue("Description"); } |
但我不能将它传递给 WaveIn。
如何使用 NAudio 获取 USB 设备输入?
如果你想用
1
2 3 4 5 |
for (int n = 0; n < WaveIn.DeviceCount; n++)
{ var caps = WaveIn.GetCapabilities(n); Console.WriteLine($"{n}: {caps.ProductName} {caps.Channels}"); } |
或者,它可以通过
访问
1
2 3 4 5 6 |
var deviceEnum = new MMDeviceEnumerator();
foreach (var device in deviceEnum.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active)) |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269775.html