For WaveIn, you can use the static WaveIn.GetCapabilities method. This will give you the device name, but with an annoying restriction of no more than 31 characters. I'm still looking for a way to get the full name (see My question here ).
int waveInDevices = WaveIn.DeviceCount;
for (int waveInDevice = 0; waveInDevice < waveInDevices; waveInDevice++)
{
WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(waveInDevice);
Console.WriteLine("Device {0}: {1}, {2} channels", waveInDevice, deviceInfo.ProductName, deviceInfo.Channels);
}
WASAPI (Vista ) MMDeviceEnumerator:
MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
foreach (MMDevice device in enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All))
{
Console.WriteLine("{0}, {1}", device.FriendlyName, device.State);
}
WaveIn, .