Изменить ориентацию AVSession для сканирования штрих-кода - PullRequest
0 голосов
/ 21 марта 2019

Вот так я настроил 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()

Проблема в том, что некоторые коды обнаруживаются только в альбомной ориентации.Я знаю, что могу изменить ориентацию слоя предварительного просмотра, но как я могу изменить ориентацию для сканирования на портрет?

...