我需要在我的人像iPhone应用程序中录制风景视频。
是否有可能或被任何硬件限制阻止?
使用AVCaptureVideoPreviewLayer我可以更改预览方向,但视频仍以纵向方式录制。
欢迎任何想法!
答案 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