#pragma mark 开启闪光灯
- (void)openTorch:(BOOL)open
{
// self.isTorchOn = open;
// if (!_isTorchSupported) {
// return;
// }
AVCaptureTorchMode torchMode;
if (open) {
torchMode = AVCaptureTorchModeOn;
} else {
torchMode = AVCaptureTorchModeOff;
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:nil];
[device setTorchMode:torchMode];
[device unlockForConfiguration];
});
}
#pragma mark 切换摄像头
- (AVCaptureDevice *)getCameraDevice:(BOOL)isFront
{
NSArray *cameras = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
AVCaptureDevice *frontCamera;
AVCaptureDevice *backCamera;
for (AVCaptureDevice *camera in cameras) {
if (camera.position == AVCaptureDevicePositionBack) {
backCamera = camera;
} else {
frontCamera = camera;
}
}
if (isFront) {
return frontCamera;
}
return backCamera;
}