正确的视频录制会话预设

时间:2019-02-11 23:29:02

标签: ios swift avfoundation

我的相机有一个小问题,这是由录制引起的。录制视频时,我将会话预设设置为

  

。高

当我在录制视频时这样做时,相机会稍微放大,回放视频时我可以看到一点。我最终希望它具有与相机相同的缩放级别,并且在进行了一些研究之后,我认为答案是将会话预设设置为

  

。照片

但是,这改变了视频的大小。它不是像instagram或snapchat中的全屏显示。它在一个小的正方形/矩形中,大部分屏幕都被遮住了。我在下面添加了图片以显示差异。

Current View

这是当预设值较高时视频的外观图片,这是我想要的样子,但是我希望在切换为录制视频时视频不放大。

Correct View

请记住,我知道这是默认属性。

我只需要知道用于视频的适当预设即可。

我还提供了一段代码

@objc func setupVideoRecord(_ sender: Any){

    sessionQueue.async {
        let movieFileOutput = AVCaptureMovieFileOutput()

        if self.session.canAddOutput(movieFileOutput) {
            self.session.beginConfiguration()
            self.session.addOutput(movieFileOutput)
            self.session.sessionPreset = .high
            if let connection = movieFileOutput.connection(with: .video) {
                if connection.isVideoStabilizationSupported {
                    connection.preferredVideoStabilizationMode = .auto
                }

                connection.videoOrientation = .portrait
                movieFileOutput.setRecordsVideoOrientationAndMirroringChangesAsMetadataTrack(true, for: connection)
            }
            self.session.commitConfiguration()

            DispatchQueue.main.async {
                self.captureButton.isHidden = true
                self.recordButton.isHidden = false
            }

            self.movieFileOutput = movieFileOutput

            DispatchQueue.main.async {
                self.recordButton.isEnabled = true
                self.recordButton.addTarget(self, action: #selector(self.record), for: .touchDown)
                self.recordButton.addTarget(self, action: #selector(self.stop), for: UIControl.Event.touchUpInside)
                self.showTextIntroScreen()
            }
        }
    }
}

0 个答案:

没有答案