问题描述
我有一个UIView,应该使用AVPlayerLayer和AVPlayer播放视频。 我以这种方式设置播放器:
fileprivate func setUpPlayer(){
let urlPathString = Bundle.main.path(forResource: "dance",ofType: "mp4")
if let videoURL = urlPathString{
let url = URL(fileURLWithPath: videoURL)
player = AVPlayer(url: url)
playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = .resizeAspectFill
self.playerView.layer.addSublayer(playerLayer)
self.playerView.layer.masksToBounds = true
}
}
override func layoutSubviews() {
self.layer.cornerRadius = 15
playerLayer.frame = self.bounds
self.setupShadow(opacity: 0.6,radius: 6,offset: CGSize.init(width: 0,height: 0),color: .darkGray)
}
问题在于,无论我在PlayerView上设置了多少个子视图,视频实际上都会覆盖隐藏我之前设置的所有子视图的所有内容。
您知道我如何在AVPlayerLayer上放置按钮或其他UIView而不隐藏它们吗?
解决方法
更改
self.playerView.layer.addSublayer(playerLayer)
到
self.playerView.layer.insertSublayer(playerLayer,at: 0)