将按钮放在PlayerLayer上-快速-以编程方式

问题描述

我有一个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)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...