2017-09-12 128 views
0

NAudioを使用してUsbデバイスからオーディオ入力を取得しようとしています。 私はWAVINクラスを使用しますが、このようにしています:C#とNAudioを使ってusbマイクからオーディオ入力を取得する方法

NAudio.Wave.WaveIn input = new NAudio.Wave.WaveIn(); 
input.DeviceNumber=0; 

しかし、私は私のマイクロのデバイス番号を取得する方法がわかりません。 私はこの方法を知っている:

WaveIn.GetCapabilities(); 

しかし、それはmicrphoneとして認識されませんbecouse全く私のマイクロは、ありません。 はまた、私はTHIのように私のUSBデバイスを得ることができます。

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デバイス入力を取得するにはどうすればよいですか?まあ

答えて

0

あなたはWaveInでそれから録音したい場合は、それが利用可能WaveInデバイスのリストに表示する必要があります。

for (int n = 0; n < WaveIn.DeviceCount; n++) 
{ 
    var caps = WaveIn.GetCapabilities(n); 
    Console.WriteLine($"{n}: {caps.ProductName} {caps.Channels}"); 
} 

また、それはWasapiCaptureでアクセスすることができる:

var deviceEnum = new MMDeviceEnumerator(); 

foreach (var device in deviceEnum.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active)) 
{ 
    Console.WriteLine($"{device.ID}: {device.DeviceFriendlyName}/{device.FriendlyName}"); 
} 
関連する問題