2015-05-10 5 views
4

В настоящее время я использую MediaCapture в приложении Windows Phone 8.1. У меня камера работает по мере необходимости, но изменение состояния вспышки оказывается затруднительным. Как и в случае с приложением камеры по умолчанию, я ищу три состояния - Авто, Выкл. И Вкл. Код, я использую выглядит следующим образом:Настройка AutoFlash в Windows Phone 8.1/WinRT

switch (mode) 
    { 
     case FlashMode.Auto: 
     _captureManager.VideoDeviceController.FlashControl.Auto = true; 
     _captureManager.VideoDeviceController.FlashControl.Enabled = false; 
     if (_captureManager.VideoDeviceController.FlashControl.AssistantLightSupported) 
      _captureManager.VideoDeviceController.FlashControl.AssistantLightEnabled = true; 
     break; 

     case FlashMode.On: 
     _captureManager.VideoDeviceController.FlashControl.Auto = false; 
     _captureManager.VideoDeviceController.FlashControl.Enabled = true; 
     if (_captureManager.VideoDeviceController.FlashControl.AssistantLightSupported) 
      _captureManager.VideoDeviceController.FlashControl.AssistantLightEnabled = true; 
     break; 

     case FlashMode.Off: 
     _captureManager.VideoDeviceController.FlashControl.Auto = false; 
     _captureManager.VideoDeviceController.FlashControl.Enabled = false; 
     if (_captureManager.VideoDeviceController.FlashControl.AssistantLightSupported) 
      _captureManager.VideoDeviceController.FlashControl.AssistantLightEnabled = false; 
     break; 
    } 

включения и выключения режима работают отлично, и когда запускает камеру установлено значение Auto. Однако, как только вы изменили камеру на включение, затем выкл, а затем обратно в авто, вспышка никогда не включается снова (я проверял, что это не освещение сцены). Любые идеи, как я могу повторно использовать авто flash?

ответ

1

Enabled имеет приоритет над Auto, так как он работает на всем FlashControl.

Если вы хотите автоматическую вспышку, вам необходимо установить EnabledиAuto к true.

+0

Спасибо за это Майк, что меня отбросило, когда камера запускает его в автоматическом режиме по умолчанию, но значения Auto = true и Enabled = false. Ваше решение отлично работает. –

+1

Нет проблем. Я думаю, что эти значения предоставлены драйвером, а это значит, что разные устройства могут запускаться с разными настройками по умолчанию, так что в любом случае рекомендуется устанавливать собственные значения по умолчанию. – Mike