让扬声器脱离AudioDevices

时间:2018-12-29 19:42:58

标签: c# wpf screen-capture audio-device

我正在尝试使用Microsoft Expression Encoder进行ScreenCapture。 我想让扬声器脱离AudioDevices(而不是麦克风)。 我的问题是,每个设备的扬声器都有另一个名称。

我想出了一种解决方案来检查设备的名称是否包含“ Speaker”,但是我认为这不适用于所有客户端设备。

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 :(得分:0)

EncoderDevice具有一个Category枚举属性。用

进行测试
if (item.Category == EncoderDeviceCategory.Playback)
{
    ...
}

麦克风的CategoryEncoderDeviceCategory.Capture

请参阅: