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



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

是可能的还是被任何硬件限制阻止了?

使用AVCaptureVideoPreviewLayer,我能够改变预览方向,但视频仍然在纵向记录。

欢迎任何想法!

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

        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...
    }

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

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

最新更新