检测音频和视频输入设备并获取其状态(C#Windows服务)
我需要在系统中获取音频和视频输入设备,并获取其状态 我是这样做的,使用的是检测音频和视频输入设备并获取其状态(C#Windows服务),c#,.net,windows-services,C#,.net,Windows Services,我需要在系统中获取音频和视频输入设备,并获取其状态 我是这样做的,使用的是DirectShow public class DeviceMonitoringService { public static DsDevice[] DetectMicrophone() { var audioDevices = DsDevice.GetDevicesOfCat(FilterCategory.AudioInputDevice); return audioDev
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;
}
}
但是这种方法不会返回设备的状态
如何获取状态?因此,对于音频输入,我可以使用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();
}
公共静态列表GetAudioInputDevices()
{
var枚举器=新的MMDeviceEnumerator();
var devicesAudio=enumerator.EnumerateAudioEndPoints(DataFlow.Capture,DeviceState.All);
返回设备音频。选择(设备=>new InputDevice()
{DeviceId=device.ID,Name=device.DeviceFriendlyName,Status=device.State.ToString()}).ToList();
}
因此对于音频输入,我可以使用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();
}
公共静态列表GetAudioInputDevices()
{
var枚举器=新的MMDeviceEnumerator();
var devicesAudio=enumerator.EnumerateAudioEndPoints(DataFlow.Capture,DeviceState.All);
返回设备音频。选择(设备=>new InputDevice()
{DeviceId=device.ID,Name=device.DeviceFriendlyName,Status=device.State.ToString()}).ToList();
}