2016-03-11 1 views
0

У меня есть представление, которое предоставляет элементы управления через UIImagePickerController.cameraOverlayView. Для этих элементов управления я хочу включить их только на основе текущей возможности активного устройства захвата. Например, включите только «факел», если устройство имеет эту возможность.Включение флеш-памяти на основе активного устройства в UIImagePickerController?

Глядя на UIImagePickerController, он имеет свойство cameraDevice, но это только перечисление, так что это не помогает.

Мой текущий код (основанный в коде других на переполнение стека):

func toggleTorch(on: Bool) -> Bool { 
    var success = false 
    let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) 
    if device.hasTorch { 
     do { 
      try device.lockForConfiguration() 

      if on == true { 
       device.torchMode = .On 
      } else { 
       device.torchMode = .Off 
      } 

      device.unlockForConfiguration() 
      success = true 
     } catch { 
      debugPrint("Torch could not be used") 
     } 
    } else { 
     debugPrint("Torch is not available") 
    } 
    return success 
} 

Я хотел бы быть в состоянии сделать устройство соответствует активному устройству ток UIImagePickerController? Есть ли способ сделать это?

ответ

0

Похоже, я пропустил факт, что UIImagePickerController уже предоставляет функциональность, в которой я нуждаюсь.

Чтобы увидеть, если текущее устройство имеет вспышки:

UIImagePickerController.isFlashAvailableForCameraDevice(cameraController?.cameraDevice) 

и установить режим (авто/вкл/выкл):

cameraController?.cameraFlashMode = UIImagePickerControllerCameraFlashMode.Auto