我有一个应用,希望在单个 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 设置为紫色,以便于引用。
最佳答案
在viewDidLayoutSubviews()内定义playerLayer.frame
在定义帧时,尚未计算 View 的最终帧。
关于ios - 使AVPlayer充满整个屏幕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48509972/