[英]Swift: Resize an AVPlayerLayer to match the bounds of its parent container
[英]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.