Получите динамики из AudioDevices - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь сделать 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 Ответ

0 голосов
/ 29 декабря 2018

EncoderDevice имеет свойство перечисления Category.Тест с

if (item.Category == EncoderDeviceCategory.Playback)
{
    ...
}

Микрофон будет иметь Category EncoderDeviceCategory.Capture.

См .:

...