如何在肖像应用程序中录制风景视频? (Swift 2,iPhone)

时间:2016-06-28 09:35:14

标签: ios iphone swift swift2 xcode7

我需要在我的人像iPhone应用程序中录制风景视频。

是否有可能或被任何硬件限制阻止?

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

欢迎任何想法!

2 个答案:

答案 0 :(得分: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...

    }

答案 1 :(得分:0)

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

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