设备处于肖像模式时是否可以在横向捕获视频?iOS - 在设备处于肖像模式时捕捉横向视频
其实我需要的是在肖像但宽度>高度,我不希望用户旋转设备捕捉到,但我想捕捉像一个更广泛的图片在横向模式下。
只是将预览图层框架更改为宽(宽度>高度)当然不够。
我试着改变预览图层的视频方向,但是会旋转图片,那不是我想要的。
previewLayer.connection.videoOrientation = .landscapeRight
是有意义的吗?
设备处于肖像模式时是否可以在横向捕获视频?iOS - 在设备处于肖像模式时捕捉横向视频
其实我需要的是在肖像但宽度>高度,我不希望用户旋转设备捕捉到,但我想捕捉像一个更广泛的图片在横向模式下。
只是将预览图层框架更改为宽(宽度>高度)当然不够。
我试着改变预览图层的视频方向,但是会旋转图片,那不是我想要的。
previewLayer.connection.videoOrientation = .landscapeRight
是有意义的吗?
您可以,您需要使用AVAssetWriter并设置输出视频的尺寸。
但是,请记住,您将降低质量。如果相机的方向是肖像,那么你接收到的是一个720H×360W的视频。
所以,如果你想保持高宽比,那么你最终需要一个180H x 360W的视频(通过裁剪输入)。
请记住,相机看到的内容,您发送到预览图层的内容以及您记录到文件的内容有所不同 - 它们都可以相互独立(您提到了更改预览图层框架,请记住这与您写出的视频无关)。
你有没有尝试过设置重力&界限的previewLayer?
var bounds:CGRect = self.view.layer.bounds
previewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
previewLayer?.bounds = bounds
previewLayer?.position = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds))
没有它不可能,因为你必须物理旋转相机。
您可以将输出视频裁剪为任何您希望的宽高比。
但是,这会使您的垂直分辨率达到目前水平分辨率的最大值。
以及减少你的视野。
如果你还是想裁剪视频以模拟实时这个“小风景模式”我建议你使用“GPUImageCropFilter”从库GPUImage