设置 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
.
.
.
看到好几个帖子都想播放透明背景的视频。这不是我要在这里完成的。
我正在尝试设置整个图层的不透明度。下面是我如何设置图像层的不透明度。我尝试了相同的方法来设置视频层的不透明度,但是当我尝试淡入淡出时没有任何反应
@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
.
.
.