2017-09-12 12 views
0

J'essaie d'obtenir une entrée audio à partir du périphérique USB en utilisant NAudio. J'utilise la classe Wavin mais comme celui-ci:Comment obtenir une entrée audio à partir du microphone USB avec C# et NAudio

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

Mais je ne sais pas comment obtenir le numéro de l'appareil de mon micro. Je sais que sur cette méthode:

WaveIn.GetCapabilities(); 

Mais il n'y a pas mon micro, becouse il est pas reconnu comme Micrphone. Je peux aussi obtenir mon périphérique USB comme thi:

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"); 
    } 

Mais je ne peux pas passer à WaveIn.

Comment puis-je obtenir une entrée USB à l'aide de NAudio?

Répondre

0

Eh bien, si vous voulez enregistrer avec WaveIn vous avez besoin qu'il apparaisse dans la liste des appareils disponibles WaveIn:

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

Alternativement, il peut être accessible avec WasapiCapture:

var deviceEnum = new MMDeviceEnumerator(); 

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