设置AVPlayerLayer的不透明度

时间:2019-02-07 04:40:02

标签: ios swift video opacity

我看过很多人想播放透明背景视频的帖子。那不是我要在这里完成的。

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

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

任何人都可以告诉我是否有可能,或者指向正确的方向

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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
    .
    .
    .