我正在使用iOS摄像头应用程序,在该应用程序中我想显示侧面带有黑条的摄像头,而不用宽高比填充全屏。
[我了解到预览层可用于控制视频尺寸,并且我能够分别使用AVLayerVideoGravityResizeAspect
和AVLayerVideoGravityResizeAspectFill
属性在侧面添加/删除黑条。
它适用于iPhone,但在iPad上却无法使用相同的代码
我尝试打印在iPhone和iPad运行期间使用的有效格式。看起来都一样
在iPhone上
<AVCaptureDeviceFormat: 0x2839d2490
'vide'/'420v' 4032x3024, { 3- 30 fps}, HRSI:4032x3024, fov:57.716, max zoom:189.00 (upscales @1.00), AF System:2, ISO:23.0-1840.0, SS:0.000013-0.333333>
在iPad上>
<AVCaptureDeviceFormat: 0x2833bf630 'vide'/'420v' 4032x3024, { 3- 30 fps}, HRSI:4032x3024, fov:63.301, max zoom:189.00 (upscales @1.00), AF System:2, ISO:22.0-2112.0, SS:0.000020-0.333333>
公开问题
为什么这在iPad上不起作用?为什么我看不到黑条?
在iPhone上打印previewLayer.frame.size.width
时,无论有无黑条,我总是得到相同的值。当我在侧面显示黑条时,我希望宽度更小。我在这里缺少任何东西吗?
谢谢!
我正在开发iOS相机应用,我想在相机的侧面显示黑条,而不会用宽高比填充整个屏幕。我了解到可以使用预览层来控制...
videoGravity
仅指定图层如何在其边界内适合视频帧。它不会导致图层更改其尺寸-它将始终保留您通过UIKit为其分配的框架。