检测音频和视频输入设备并获取其状态(C#Windows服务)

时间:2020-05-22 08:31:27

标签: c# .net windows-services

我需要获取系统中的音频和视频输入设备并获取其状态。

我正在使用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;
    }
}

但是这种方法不会返回设备的状态。

我如何获得身份?

1 个答案:

答案 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();
    }
相关问题