Мне нужно использовать фронтальную камеру для сканирования QRCode так же, как BackCamera. Где мне нужно поменять?
Я использую QRCoder третьей стороны https://github.com/sbhklr/QRCoder, и я настроил код в соответствии с моим требованием
Для передней камеры, использующей
let captureDevice : AVCaptureDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .front)
Для задней камеры по умолчанию с использованием
captureDevice = AVCaptureDevice.default(for: AVMediaType.video)
LoadCamera внутри UIView
videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer.captureDevicePointConverted(fromLayerPoint: CGPoint(x: 0.5, y: 0.5))
videoPreviewLayer.frame = self.previewView.bounds
let preset = AVCaptureSession.Preset.photo
if(captureSession.canSetSessionPreset(preset))
{
captureSession.sessionPreset = preset
}
highlightView.autoresizingMask = [.flexibleTopMargin, .flexibleLeftMargin, .flexibleRightMargin, .flexibleBottomMargin]
highlightView.frame = CGRect(x: self.view.frame.midX - 225, y: self.view.frame.midY - 225, width: 450, height: 450)
view.addSubview(highlightView)
do
{
deviceInput = try AVCaptureDeviceInput(device: captureDevice!)
} catch let error as NSError
{
didFailWithError(error: error)
return
}
if let captureInput = deviceInput
{
captureSession.addInput(captureInput)
}
else
{
return
}
captureSession.addOutput(metadataOutput)
metadataOutput.setMetadataObjectsDelegate(self, queue: metadataObjectsQueue)
metadataOutput.metadataObjectTypes = [AVMetadataObject.ObjectType.qr]
QRCode прекрасно сканирует в задней камере, но в передней камере это совсем не работает ... Я много пробовал, внедряя режим фокусировки для CaptureDevice, но у меня ничего не работает? Любые решения ....