如果连接了多个摄像头,如何获取内置摄像头

本文关键字:摄像头 获取 内置 何获取 连接 如果 | 更新日期: 2023-09-27 18:21:24

在通用Windows应用程序中,使用以下代码片段

var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(Windows.Devices.Enumeration.DeviceClass.VideoCapture);
if (devices.Count < 1)
{
     return;
}
string deviceID = devices[0].Id;

我可以得到连接到我的设备的摄像头。如果有不止一个摄像头,有没有办法明确地获得内置摄像头,而不是USB(或蓝牙或任何东西)连接的摄像头?

如果连接了多个摄像头,如何获取内置摄像头

使用EnclosureLocation.Panel属性来确定您找到的相机是否是内置在设备中的相机。如果面板是Unknown,则它是一个外部相机。请注意,可以有多个内置摄像头。(例如,有些设备同时具有前置摄像头和后置摄像头。)

受相机入门套件示例启发的代码:

// Attempt to get the back camera if one is available,
// but use any camera device if not.
var cameraDevice = await FindCameraDeviceByPanelAsync(
                             Windows.Devices.Enumeration.Panel.Back); 
if (cameraDevice == null)
{
    // This device has no camera.
}
else if (cameraDevice.EnclosureLocation == null ||
         cameraDevice.EnclosureLocation.Panel ==
                             Windows.Devices.Enumeration.Panel.Unknown) 
{ 
     // We have an external camera.
}
else
{
     // We have a built-in camera. The location is reported in
     // cameraDevice.EnclosureLocation.Panel.
}