设置AVPlayerLayer的不透明度

问题描述 投票:0回答:2

[我已经看到很多人想播放具有透明背景的视频的帖子。这不是我要在这里完成的。

我正在尝试设置整个图层的不透明度。以下是我如何设置图像图层的不透明度。我尝试了相同的方法为视频层设置不透明度,但是当我尝试淡入淡出时什么也没发生

    @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()
}

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

ios swift video opacity
2个回答
1
投票

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

我不知道这是否是正确的方法,但是它对我有用,并且对我有用。如果有人有更好的答案,请随时分享


0
投票

您可以将其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
    .
    .
    .
© www.soinside.com 2019 - 2024. All rights reserved.