2014-01-08 3 views
2

Я разрабатываю приложение стиля метро, ​​используя C# и xaml. Для конкретной задачи мне нужно определить, какой кулачок (передний или задний) в настоящее время захватывает. Есть ли способ обнаружить передний кулачок или задний кулачок в winrt. Пожалуйста, помогите мне.Обнаружение передней и задней камеры в окнах 8 вкладок

ответ

0

Вы можете использовать этот код.

DeviceInformationCollection videoCaptureDevices = await eviceInformation.FindAllAsync(DeviceClass.VideoCapture); 

Если счетчик видеозахвата является нулевым, камеры не подключено.
И если число камер равно 2, тогда будут и передние & камеры заднего вида.

Если вы инициализируете работу камеры с помощью videoCaptureDevices [0], это будет использовать переднюю камеру, и будет обратная камера, если она использует videoCaptureDevices [1].

1

Использование индексов на DeviceInformationCollection не будет надежным решением:

  1. Иногда передняя камера будет индексом 0, а иногда 1, после испытания на поверхность 2 несколько раз это, кажется, своего рода случайных ,
  2. Пользователь может использовать USB-порт для подключения другой веб-камеры, чтобы вы могли получить более двух элементов в своей коллекции, без каких-либо подсказок, какая камера является индексом.

Имея такую ​​же проблему, как вы это, как я ее решил:

// Still need to find all webcams 
DeviceInformationCollection webcamList = await eviceInformation.FindAllAsync(DeviceClass.VideoCapture) 

// Then I do a query to find the front webcam 
DeviceInformation frontWebcam = (from webcam in webcamList 
    where webcam.EnclosureLocation != null 
    && webcam.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Front 
    select webcam).FirstOrDefault(); 

// Same for the back webcam 
DeviceInformation backWebcam = (from webcam in webcamList 
    where webcam.EnclosureLocation != null 
    && webcam.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Back 
    select webcam).FirstOrDefault(); 

В этом Exemple я использовал Linq запросов, но он работает так же с Еогеасп на «webcamList».

Просто посмотрите на каждый DeviceInformation .EnclosureLocation.Panel собственности, которая является Windows.Devices.Enumeration.Panel ENUM. Остальное - obvius, Front для передней камеры, Back for the back one.

Будьте также внимательны, чтобы проверить, . ЗаблокироватьОпределение является нулевым или нет, с помощью веб-камеры USB, похоже, в большинстве случаев является нулевым.

Смежные вопросы