Swift Camera App - включить ландшафтный режим вправо / влево - PullRequest
0 голосов
/ 04 ноября 2019

Я новичок в Swift и пытаюсь реализовать приложение камеры в альбомном режиме (слева и справа). Я попробовал видеоурок, приложение камеры в основном работает, но только в портретном режиме (не в альбомной). Если в проекте включить альбомную ориентацию влево и вправо (и отключить портретный режим), камера будет выглядеть следующим образом:

enter image description here

Что я делаю неправильно? Я нашел несколько сообщений об этой же проблеме, но ни один из них не помог мне решить проблему.

С наилучшими пожеланиями

Я пробовал аффинное преобразование, например CGAffineTransform (вращение: -90), но это также не решает проблему.


import UIKit
import AVFoundation

class ViewController: UIViewController {


    @IBOutlet weak var cameraView: UIView!

    var captureSession: AVCaptureSession?
    var videoPreviewLayer: AVCaptureVideoPreviewLayer?
    var backCamera = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)



    override func viewDidLoad() {
        super.viewDidLoad()

        if #available(iOS 10.2, *)
        {
            let captureDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)
            do
            {
                let input = try AVCaptureDeviceInput(device: captureDevice!)
                captureSession = AVCaptureSession()
                captureSession?.addInput(input)
                videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession!)
                videoPreviewLayer?.frame = view.layer.bounds
                cameraView.layer.addSublayer(videoPreviewLayer!)
                captureSession?.startRunning()
            }
            catch
            {
                print("error")
            }
        }

    }

1 Ответ

0 голосов
/ 05 ноября 2019

Попробуйте это:

private var previewLayer: AVCaptureVideoPreviewLayer?

previewLayer?.connection?.videoOrientation = .landscapeLeft
previewLayer?.connection?.videoOrientation = .portrait

...