在使用AVPlayerLayer的replaceCurrentItem(with:)方法时,如果出现闪烁为黑屏的问题,可以尝试以下解决方法:
player.pause()
player.replaceCurrentItem(with: newPlayerItem)
player.replaceCurrentItem(with: newPlayerItem)
player.play()
playerLayer.removeFromSuperlayer()
player.replaceCurrentItem(with: newPlayerItem)
playerLayer = AVPlayerLayer(player: player)
// 添加playerLayer到相应的父视图中
DispatchQueue.main.async {
player.replaceCurrentItem(with: newPlayerItem)
}
以上是一些常见的解决方法,根据具体情况选择合适的方法进行调整。