【问题标题】:How to record landscape video in a portrait application? (Swift 2, iPhone)如何在纵向应用程序中录制横向视频? (斯威夫特 2,iPhone)
【发布时间】:2016-06-28 09:35:14
【问题描述】:

我需要在我的纵向 iPhone 应用程序中录制横向视频。

是否有可能或是否受到任何硬件限制?

使用 AVCaptureVideoPreviewLayer 我能够更改预览方向,但视频仍以纵向录制。

欢迎任何想法!

【问题讨论】:

    标签: ios iphone swift swift2 xcode7


    【解决方案1】:

    您应该能够将视频录制的方向设置为横向。并将预览层设置为纵向,实现纵向预览的横向视频。如果我正确理解你的问题。您可以展示您已经尝试过的任何代码吗?

            if captureSession.canAddOutput(videoOutput) {
                captureSession.addOutput(videoOutput)
                let connection = videoOutput.connectionWithMediaType(AVMediaTypeVideo)
                if connection.supportsVideoOrientation {
                    connection.videoOrientation = AVCaptureVideoOrientation.LandscapeRight
                }
                print("adding output")
    
            } else {
                print("Could not add front video output")
                return
            }
    
        ...
    
        func setupPreviewLayer() {
    
            ...etc...
    
            previewLayer.connection.videoOrientation = AVCaptureVideoOrientation.Portrait
    
            ...etc...
    
        }
    

    【讨论】:

    • 我尝试使用 previewLayer 连接,但没有成功(收到fatal error: unexpectedly found nil while unwrapping an Optional value 错误)。
    • 你能展示一些你如何设置预览层的代码吗?
    【解决方案2】:

    我在纵向应用程序中播放横向视频时遇到问题。通过编写以下代码解决了它。在配置会话时添加以下代码:

    captureSession.addOutput(videoFileOutput)
    let videoDataOuputConnection = videoFileOutput.connection(with: .video)
    videoFileOutput.setRecordsVideoOrientationAndMirroringChangesAsMetadataTrack(true, for: videoDataOuputConnection!)
    

    在开始录制视频功能中,在开始录制之前添加以下代码:

    let videoDataOuputConnection = videoFileOutput.connection(with: .video)
    let orientation = UIDevice.current.orientation
    videoDataOuputConnection!.videoOrientation = AVCaptureVideoOrientation(rawValue: orientation.rawValue)!
    

    注意:videoFileOutput 是 AVCaptureMovieFileOutput 类型,captureSession 是 AVCaptureSession 类型

    【讨论】:

      猜你喜欢
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 2015-10-05
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多