繁体   English   中英

如何自动调整 AVPlayerLayer 的大小以在 Swift 的整个父视图上以全尺寸显示视频

[英]How do I auto resize an AVPlayerLayer to show the video in its full size on the whole parent view in Swift

我试图在UIImage上使用AVPlayerLayer显示视频。 视频应该自行调整大小,以便在图像视图上显示完整的视频,即使它必须拉伸自己才能做到这一点。 不幸的是,我没有得到这些结果,我的视频最终在模拟器上看起来像这样。 结果图片

我尝试将 AVPlayerLayer.frame 手册设置为图像视图大小,以展示我的目标是让它在所有不同的 iPhone 尺寸上看起来像什么。 目标结果的图像

这是我的代码:

let playerLayer = AVPlayerLayer(player: queuePlayer)
playerLayer.frame = feedBackground.bounds
playerLayer.videoGravity = .resizeAspectFill
feedBackground.layer.masksToBounds = true
feedBackground.layer.addSublayer(playerLayer)

(feedBackground 是一个 UIImage)

不知道它是否重要,但 feedBackground 的 contentMode 是按比例填充的

我对应用程序开发很陌生,所以感谢您抽出时间阅读我的问题,并感谢您提供的任何解决方案:)

好吧,我找到了解决方案。 我将视频集成到 viewDidLoad 中,并将 playerLayer.frame 设置为等于 feedBackground.bounds - 我认为它不起作用的原因是图形尚未加载,所以我无法设置我的视频帧等于 feedBackgrounds 框架 bcs feedBackgrounds 框架尚未计算/制作。

也许是错的,无论是通过将我的代码移动到 viewDidAppear 或 viewWillAppear 来实现的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM