Swift Camera App - 左右启用横向模式

Posted

技术标签:

【中文标题】Swift Camera App - 左右启用横向模式【英文标题】:Swift Camera App - enable landscape mode right / left 【发布时间】:2019-11-04 12:31:57 【问题描述】:

我是 Swift 新手,我尝试在横向模式(左右)下实现相机应用。 我尝试了一个视频教程,相机应用程序基本上可以工作,但只是在纵向模式(不是横向)。 如果我在项目中启用横向左+右(并禁用纵向模式),相机看起来像这样:

我做错了什么?我发现了一些关于同样问题的帖子,但没有一个能帮助我解决问题。

最好的问候

我尝试了像 CGAffineTransform(rotationAngle: -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】:

试试这个:

private var previewLayer: AVCaptureVideoPreviewLayer?

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

【讨论】:

以上是关于Swift Camera App - 左右启用横向模式的主要内容,如果未能解决你的问题,请参考以下文章

在 didFinish 函数 WKWebView 中启用横向

Android 11.0 修复Camera 启用后置摄像头在拍照界面下,白平衡按钮无法点击

iOS:处理方向更改而不在视图控制器上启用横向模式

Android 11.0 修复Camera预览照片时按键盘左右键,底部功能栏的焦点也同时变动

以横向模式返回 (android.hardware.Camera)

Android 系统APK-Camera 修复:预览照片时使用按键盘左右键,底部导航栏焦点也会跟着变动