我有一个应用,我希望在单个视图的背景中播放视频。
我所做的是创建AVPlayer
,将其添加到AVPlayerLayer
并将其添加为我的视图的子图层。
然后我设置框架和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
现在播放视频,但不会填满整个屏幕。它填充了原始尺寸,但不会拉伸/缩放。
我错过了什么吗?为什么我的视频没有调整大小?
感谢。
修改
我添加了截图并将视图设为紫色以便于参考。
答案 0 :(得分:1)
如果您想要在整个视图上展开视频,只需删除该行
即可playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
videoGravity
默认值为AVLayerVideoGravityResize
答案 1 :(得分:1)
在viewDidLayoutSubviews()
中定义playerLayer.frame在您定义帧时,尚未计算视图的最终帧。