从uiimageviewcontroller ios看,照相机闪光灯不工作
不闪烁任何闪光灯-从uiimageviewcontroller ios看,照相机闪光灯不工作,ios,uiimagepickercontroller,Ios,Uiimagepickercontroller,不闪烁任何闪光灯- -(void)_flashToggle { if (! [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear ]) return; if (PickerController.cameraFlashMode == UIImagePickerControllerCameraFlashModeOff) PickerContro
-(void)_flashToggle
{
if (! [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear ])
return;
if (PickerController.cameraFlashMode == UIImagePickerControllerCameraFlashModeOff)
PickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
else
PickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
}
通过使用
AVFoundation
框架访问设备,您可以轻松更改设备火炬模式,如:
Swift 3.0
func toggleTorchMode() {
if let device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo), device.hasTorch {
let isTorchSupported = device.isTorchModeSupported(mode)
let isTourchAvailable = device.isTorchAvailable
if isTorchSupported && isTourchAvailable {
do {
try device.lockForConfiguration()
if device.torchMode == AVCaptureTorchMode.on {
device.torchMode = AVCaptureTorchMode.off
}
else {
device.torchMode = AVCaptureTorchMode.on
}
device.unlockForConfiguration()
} catch {
Globals.printlnDebug("Error in setting the torch mode")
}
}
else if mode == AVCaptureTorchMode.on{
Globals.showErrorMessage("Torch not available", inViewController: self)
}
}
}
目标-C
-(void)toggleTorchMode
{
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ((device) && (device.hasTorch) && (device.isTorchAvailable)) {
[device lockForConfiguration:nil];
if (device.torchMode == AVCaptureTorchModeOn) {
device.torchMode = AVCaptureTorchModeOff;
}
else {
device.torchMode = AVCaptureTorchModeOn;
}
}
else {
//ERROR: Device doesn't have tourch
}
}
但我使用的是uiimagepickercontroller,我想用它来实现,而不是AVFoundation Framework,我想要的是flash模式而不是torch模式UIImagePickerView打开要捕获的默认相机视图,它具有管理闪光灯的默认控件。