我正在尝试使用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;
}
有人知道该怎么做吗?
答案 0 :(得分:0)
EncoderDevice
具有一个Category
枚举属性。用
if (item.Category == EncoderDeviceCategory.Playback)
{
...
}
麦克风的Category
为EncoderDeviceCategory.Capture
。
请参阅: