2016-01-22 4 views
3

Я пытаюсь создать проект, который позволяет мне поднять камеру, но мне сказали, что мне запрещается доступ к камере при каждом запуске программы. Я прочитал учебник по следующей ссылке https://msdn.microsoft.com/en-us/library/windows/apps/mt243896.aspx и сделал некоторые незначительные изменения в код, но изменения не должны повлиять на исходUWP MediaCapture Отказано в доступе к камере

private MediaCapture _mediaCapture; 
    private bool _isInitialized; 

    private async Task InitializeCameraAsync() 
    { 
     if (_mediaCapture == null) 
     { 
      // Get available devices for capturing pictures 
      var allVideoDevices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture); 

      // Get the desired camera by panel 
      DeviceInformation cameraDevice = 
       allVideoDevices.FirstOrDefault(x => x.EnclosureLocation != null && 
       x.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Back); 

      // If there is no camera on the specified panel, get any camera 
      cameraDevice = cameraDevice ?? allVideoDevices.FirstOrDefault(); 

      if (cameraDevice == null) 
      { 
       Debug.WriteLine("No camera device found."); 
       return; 
      } 

      // Create MediaCapture and its settings 
      _mediaCapture = new MediaCapture(); 

      MediaCaptureInitializationSettings mediaInitSettings = new MediaCaptureInitializationSettings { 
       VideoDeviceId = cameraDevice.Id 
       }; 

      // Initialize MediaCapture 
      try 
      { 
       await _mediaCapture.InitializeAsync(mediaInitSettings); 
       _isInitialized = true; 
      } 
      catch (UnauthorizedAccessException) 
      { 
       Debug.WriteLine("The app was denied access to the camera"); 
      } 
      catch (Exception ex) 
      { 
       Debug.WriteLine("Exception when initializing MediaCapture with {0}: {1}", cameraDevice.Id, ex.ToString()); 
      } 

      // If initialization succeeded, start the preview 
      if (_isInitialized) 
      { 
       // Figure out where the camera is located 
       if (cameraDevice.EnclosureLocation == null || cameraDevice.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Unknown) 
       { 
        // No information on the location of the camera, assume it's an external camera, not integrated on the device 
        _externalCamera = true; 
       } 
       else 
       { 
        // Camera is fixed on the device 
        _externalCamera = false; 

        // Only mirror the preview if the camera is on the front panel 
        _mirroringPreview = (cameraDevice.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Front); 
       } 

       await StartPreviewAsync(); 

      } 
     } 
    } 

Кроме того, я уверен, что моя камера позволяет получить доступ использовать для приложений , Кто-нибудь имеет представление о том, почему он не работает?

+1

Просто убедитесь, что вы не пропустили его: активировали ли вы возможности, указанные в манифесте пакета? – Aphelion

+0

Нет, я этого не делал. Тем не менее, я проверил все коробки, и он не будет работать. – Lotzi11

+0

На самом деле, я просто получил его для доступа к камере. Спасибо anyways – Lotzi11

ответ

11

Добавить Характеристики микрофона и камеры от Манифест файл. Файл манифеста должен присутствовать только в проекте. Найдите Возможности и проверьте соответствующие параметры

+0

Смешная вещь, есть альтернатива «Веб-камера», которая, как я думал, будет достаточной. Очевидно нет. Спасибо за отличный ответ! – Ms01

+0

Эй! Удовольствие, чтобы помочь вам – Apoorv

+0

@ Ms01 Вы пропустили отметку об этом в качестве ответа? Помог бы другим, если бы его отметили как ответ на ваш вопрос :) – Apoorv

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

  • Нет связанных вопросов^_^