调整 AVPlayer 大小时的自动布局问题

Autolayout problems when sizing AVPlayer

我在 UIViewController 中有一个 AVPlayerLayer。当设备处于纵向模式时,我希望视频填满屏幕宽度并保持 16:9 比例。当设备处于横向模式时,我希望视频填充设备的高度,并且仍然保持 16:9 比例。它应该使用超级视图,而不是安全区域指南。这与 iOS 上的照片应用中视频的显示方式相同。不过,我在使用自动版式进行设置时遇到了麻烦。我该怎么做?

在我的视频视图中,我有以下限制:

16:9 ratio for width:height
Trailing space to superview >= 0
Leading space to superview >= 0
Align Center Y to superview
Bottom to superview >= 0
Top to superview >= 0

目前这些不起作用,因为它说需要对 Y 位置或高度进行约束。

宽高比由视频本身决定,因此您无需在视图中考虑它。只需将顶部、前导、尾随、底部约束固定到您的超级视图,删除纵横比约束,然后在 AVPlayerLayer 上设置以下 属性:

playerLayer.videoGravity = .resizeAspectFill