How can I get a list of camera devices from my PC C#

后端 未结 2 1273
無奈伤痛
無奈伤痛 2020-12-22 14:09

How can I get a list all of camera devices attached to my PC using USB (WebCams) but also the build in camera that the laptops have.

相关标签:
2条回答
  • 2020-12-22 14:21

    I've done this before - use http://directshownet.sourceforge.net/ to give you a decent .net interface to DirectShow, then you can just use the following code:

      DsDevice[] captureDevices;
    
      // Get the set of directshow devices that are video inputs.
      captureDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);    
    
      for (int idx = 0; idx < captureDevices.Length; idx++)
      {
        // Do something with the device here...
      }
    
    0 讨论(0)
  • 2020-12-22 14:26

    A simple solution without any external library is to use WMI.

    Add using System.Management; and then:

    public static List<string> GetAllConnectedCameras()
    {
        var cameraNames = new List<string>();
        using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE (PNPClass = 'Image' OR PNPClass = 'Camera')"))
        {
            foreach (var device in searcher.Get())
            {
                cameraNames.Add(device["Caption"].ToString());
            }
        }
    
        return cameraNames;
    }
    
    0 讨论(0)
提交回复
热议问题