let devices = AVCaptureDevice.devices().filter{ $0.hasMediaType(AVMediaTypeVideo) && $0.position == AVCaptureDevicePosition.Back } if let captureDevice = devices.first as? AVCaptureDevice { do{ try captureSession.addInput(AVCaptureDeviceInput.init(device: captureDevice)) }catch let error as NSError { logger.error(error.debugDescription) } captureSession.sessionPreset = AVCaptureSessionPresetPhoto captureSession.startRunning() stillImageOutput.outputSettings = [AVVideoCodecKey:AVVideoCodecJPEG] if captureSession.canAddOutput(stillImageOutput) { captureSession.addOutput(stillImageOutput) } if let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) { previewLayer.frame = view.bounds previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill let cameraPreview = UIView(frame: CGRectMake(0.0,0.0,maskBottomView.frame.size.width,maskBottomView.frame.size.height)) cameraPreview.layer.addSublayer(previewLayer) cameraPreview.addGestureRecognizer(UITapGestureRecognizer(target: self,action:"savetoCamera:")) maskTopView.layer.cornerRadius = 80; maskTopView.layer.shadowOffset = CGSizeMake(15,20); maskTopView.layer.shadowRadius = 5; maskTopView.layer.shadowOpacity = 0.5; view.insertSubview(cameraPreview,belowSubview: maskBottomView) } }