0

我正在尝试使用 Microsoft Expression Encoder 进行 ScreenCapture。我想从 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;
}

有人知道该怎么做吗?

4

1 回答 1

0

EncoderDevice有一个Category枚举属性。测试

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

麦克风将有一个CategoryEncoderDeviceCategory.Capture

看:

于 2018-12-29T19:55:00.307 回答