设置 AVPlayerLayer 的不透明度

Set opacity of AVPlayerLayer

看到好几个帖子都想播放透明背景的视频。这不是我要在这里完成的。

我正在尝试设置整个图层的不透明度。下面是我如何设置图像层的不透明度。我尝试了相同的方法来设置视频层的不透明度,但是当我尝试淡入淡出时没有任何反应

    @IBAction func imageFadeAction(_ sender: Any) {
    let rounded = Int(round(imageFader.value))
    imageLabel.text = "\(rounded.description)%"
    let fade = imageFader.value / 100
    SecondScreen.main?.backgroundImage.alpha = CGFloat(fade)
    SecondScreen.main?.viewDidLoad()
}

这就是我播放视频和生成图层的方式

    func playVideo() {
    let videoURL = SecondScreen.videoPath
    self.player = AVPlayer(url: videoURL!)
    self.avpController = AVPlayerLayer(player: player)
    avpController.frame = self.view.bounds
    self.view.layer.addSublayer(avpController)
    player.play()
}

任何人都可以告诉我是否可行或指出正确的方向

为了回答我自己的问题,请使用容器视图。在单独的 ViewController 中播放您的视频并将其嵌入到容器视图中。然后你可以设置容器视图的不透明度。

我不知道这是否是正确的方法,但它适合我和我需要的东西。如果有人有更好的答案,请随时分享

您可以将其 opacity 设置为 0。像这样:

    guard let path = Bundle.main.path(forResource: "SomeVideo", ofType: ".Someformat") else {
        return nil
    }
    let player = AVPlayer(url: URL(fileURLWithPath: path))
    let playerLayer = AVPlayerLayer(player: player)

    playerLayer.opacity = 0
    .
    .
    .