我需要在我的人像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