Получите динамики из AudioDevices
Я пытаюсь сделать ScreenCapture с помощью Microsoft Expression Encoder. Я хочу вывести динамики из AudioDevices (НЕ из микрофона). Моя проблема в том, что каждое устройство имеет другое название для своих динамиков.
Я предложил решение проверить, содержит ли имя устройства "Динамик", но я думаю, что это не сработает на каждом клиентском устройстве.
private EncoderDevice GetAudioDevice()
{
EncoderDevice audioDevice = null;
Collection<EncoderDevice> audioDevices =
EncoderDevices.FindDevices(EncoderDeviceType.Audio);
try
{
foreach (var item in audioDevices)
{
if (item.Name.ToUpper().Contains("SPEAKER"))
{
audioDevice = item;
}
else
{
audioDevice = audioDevices.First();
}
}
}
catch (Exception ex)
{
MessageBox.Show("Keine AudioDevices gefunden!");
}
return audioDevice;
}
Кто-нибудь знает, как это сделать?
1 ответ
Решение
EncoderDevice
имеет Category
enum property. Тест с
if (item.Category == EncoderDeviceCategory.Playback)
{
...
}
Микрофон будет иметь Category
из EncoderDeviceCategory.Capture
,
Увидеть: