Когда мое приложение для iPhone автоматически поворачивается, у меня неправильная ориентация камеры

#ios #swift #xcode

#iOS #swift #xcode

Вопрос:

Я просмотрел много документации. Я вообще не могу найти ответ.

Каждый раз, когда я поворачиваю свою камеру, мой пользовательский интерфейс, очевидно, поворачивается, но затем моя камера остается с этим поворотом.

Как будто координаты по-прежнему локальные, а не направлены на глобальный север.

Что еще я могу посмотреть?

 import UIKit
import AVFoundation

class scannerViewController: UIViewController   {
    
    var session      : AVCaptureSession!
    var input        : AVCaptureInput!
    var previewLayer : AVCaptureVideoPreviewLayer!
    var camera       : AVCaptureDevice!
    
    
    
    @IBOutlet weak var cameraPreview: UIView!
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        
        session = AVCaptureSession()
        
        camera = AVCaptureDevice.default(for: AVMediaType.video)
        
        input = try? AVCaptureDeviceInput(device: camera!)
        
        session.addInput(input)
        previewLayer = AVCaptureVideoPreviewLayer(session: session)

       
        cameraPreview.layer.addSublayer(previewLayer)
        
        
        DispatchQueue.global(qos: .userInitiated).async {
            self.session.startRunning()
            
            DispatchQueue.main.async {
                self.previewLayer.frame = self.cameraPreview.bounds
                
            }
        }
    }
}
  

Комментарии:

1. Попробуйте установить AVCaptureVideoOrientation

2. когда я читаю developer.apple.com/documentation/avfoundation / … , и developer.apple.com/documentation/avfoundation / … …. в нем говорится, что это перечисление …. которое я прочитал в документах по swift, и я считаю, что это не неизменяемый объект, поэтому я могу его изменить …. также, если я просто наберу AVCaptureVideoOrientation.portrait, я почти уверен, что это ничего не значит

3. как мне настроить AVCaptureVideoOrientation

4. Вы устанавливаете это на своем previewLayer.connection . if let connection = previewLayer.connection { connection.videoOrientation = ... }

5. я внимательно читаю эти страницы документа, мне кажется, или они не очень хороши… я что-то упускаю, откуда бы я это знал