Вот так я настроил AVCaptureSession для сканирования штрих-кода.
captureSession = AVCaptureSession()
guard let dev = AVCaptureDevice.default(for: .video) else { return }
guard let session = captureSession else { return }
do {
let input = try AVCaptureDeviceInput.init(device: dev)
let output = AVCaptureMetadataOutput()
if session.canAddInput(input) {
self.captureSession?.addInput(input)
}
if session.canAddOutput(output) {
session.addOutput(output)
output.setMetadataObjectsDelegate(self, queue: DispatchQueue.init(label: "scan"))
output.metadataObjectTypes = self.objectTypes
}
} catch {
}
let prevLayer = AVCaptureVideoPreviewLayer.init(session: captureSession!)
prevLayer.frame = self.view.frame
prevLayer.videoGravity = .resizeAspectFill
cameraPreview.layer.addSublayer(prevLayer)
self.captureSession?.startRunning()
Проблема в том, что некоторые коды обнаруживаются только в альбомной ориентации.Я знаю, что могу изменить ориентацию слоя предварительного просмотра, но как я могу изменить ориентацию для сканирования на портрет?