Перечислите регистрирующие устройства в NAudio

Вот справочник о том, как найти ОС, которую локальная машина выполняет от Perl.

$ ^O переменная ($OSTYPE при использовании английского языка) содержит операционную систему, для которой был создан двоичный файл жемчуга.

8
задан Adam Haile 19 September 2009 в 18:10
поделиться

1 ответ

Для WaveIn вы можете использовать статический метод WaveIn.GetCapabilities. Это даст вам имя устройства, но с досадным ограничением, которое состоит из максимум 31 символа. Я все еще ищу способ получить полное имя (см. Мой вопрос здесь ).

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 , поскольку он более широко поддерживается и обеспечивает большую гибкость в отношении частоты дискретизации записи.

24
ответ дан 5 December 2019 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: