【发布时间】:2016-06-28 09:35:14
【问题描述】:
我需要在我的纵向 iPhone 应用程序中录制横向视频。
是否有可能或是否受到任何硬件限制?
使用 AVCaptureVideoPreviewLayer 我能够更改预览方向,但视频仍以纵向录制。
欢迎任何想法!
【问题讨论】:
标签: ios iphone swift swift2 xcode7
我需要在我的纵向 iPhone 应用程序中录制横向视频。
是否有可能或是否受到任何硬件限制?
使用 AVCaptureVideoPreviewLayer 我能够更改预览方向,但视频仍以纵向录制。
欢迎任何想法!
【问题讨论】:
标签: ios iphone swift swift2 xcode7
您应该能够将视频录制的方向设置为横向。并将预览层设置为纵向,实现纵向预览的横向视频。如果我正确理解你的问题。您可以展示您已经尝试过的任何代码吗?
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...
}
【讨论】:
fatal error: unexpectedly found nil while unwrapping an Optional value 错误)。
我在纵向应用程序中播放横向视频时遇到问题。通过编写以下代码解决了它。在配置会话时添加以下代码:
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 类型
【讨论】: