swift2 如何在纵向应用程序中录制横向视频?(Swift 2,iPhone)

wpcxdonn  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(254)

我需要在我的纵向iPhone应用程序中录制横向视频。
是否可能,或者是否因硬件限制而受阻?
使用AVCaptureVideoPreviewLayer,我可以更改预览方向,但视频仍以纵向录制。
欢迎您提出任何意见!

yyyllmsg

yyyllmsg1#

您应该可以将视频录制的方向设置为横向。并将预览层设置为纵向,以实现在纵向中预览的横向视频。如果我没有理解错您的问题,您可以显示您已经尝试过的任何代码吗?

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

    }
rt4zxlrg

rt4zxlrg2#

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

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)!

注意:视频文件输出的类型为AVCaptureMovieFileOutput,捕获会话的类型为AVCaptureSession

相关问题