iPad的AVVideoPreview图层重力

问题描述 投票:0回答:1

我正在使用iOS摄像头应用程序,在该应用程序中我想显示侧面带有黑条的摄像头,而不用宽高比填充全屏。

[我了解到预览层可用于控制视频尺寸,并且我能够分别使用AVLayerVideoGravityResizeAspectAVLayerVideoGravityResizeAspectFill属性在侧面添加/删除黑条。

它适用于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>

公开问题

  1. 为什么这在iPad上不起作用?为什么我看不到黑条?

  2. 在iPhone上打印previewLayer.frame.size.width时,无论有无黑条,我总是得到相同的值。当我在侧面显示黑条时,我希望宽度更小。我在这里缺少任何东西吗?

  3. 谢谢!

我正在开发iOS相机应用,我想在相机的侧面显示黑条,而不会用宽高比填充整个屏幕。我了解到可以使用预览层来控制...

ios swift avfoundation
1个回答
0
投票

videoGravity仅指定图层如何在其边界内适合视频帧。它不会导致图层更改其尺寸-它将始终保留您通过UIKit为其分配的框架。

© www.soinside.com 2019 - 2024. All rights reserved.