我有一个应用,希望在单个 View 的背景下播放视频。

我所做的是创建一个AVPlayer,将其添加到AVPlayerLayer,并将其作为子层添加到我的 View 中。

然后设置框架和videoGravity属性:

self.player = AVPlayer(url: URL(fileURLWithPath: path))
let playerLayer = AVPlayerLayer(player: self.player)
self.layer.addSublayer(playerLayer)
playerLayer.frame = self.bounds
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill

现在,视频将播放,但它不会充满整个屏幕。它会填满其原始大小,但不会拉伸(stretch)/缩放。

我想念什么吗?为什么我的视频没有调整大小?

谢谢。

编辑:

我添加了一个屏幕截图,并将 View 设置为紫色,以便于引用。

ios - 使AVPlayer充满整个屏幕-LMLPHP

最佳答案

在viewDidLayoutSubviews()内定义playerLayer.frame

在定义帧时,尚未计算 View 的最终帧。

关于ios - 使AVPlayer充满整个屏幕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48509972/

10-11 20:56