我需要获取系统中的音频和视频输入设备并获取其状态。
我正在使用DirectShow
public class DeviceMonitoringService
{
public static DsDevice[] DetectMicrophone()
{
var audioDevices = DsDevice.GetDevicesOfCat(FilterCategory.AudioInputDevice);
return audioDevices;
}
public static DsDevice[] DetectCamera()
{
var videoDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
return videoDevices;
}
}
但是这种方法不会返回设备的状态。
我如何获得身份?
答案 0 :(得分:0)
因此,对于音频输入,我可以使用NAudio nuget
并像这样检测所有输入
public static List<InputDevice> GetAudioInputDevices()
{
var enumerator = new MMDeviceEnumerator();
var devicesAudio = enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All);
return devicesAudio.Select(device => new InputDevice()
{DeviceId = device.ID, Name = device.DeviceFriendlyName, Status = device.State.ToString()}).ToList();
}