可以通过以下代码示例来解决该问题:
if let player = playerView.player {
player.currentItem?.addObserver(self, forKeyPath: "playbackLikelyToKeepUp", options: .new, context: nil)
NotificationCenter.default.addObserver(self, selector: #selector(itemDidPlayToEnd), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)
if #available(iOS 11.0, *) {
player.addObserver(self, forKeyPath: "timeControlStatus", options: [.old, .new], context: nil)
}
if UIScreen.main.traitCollection.userInterfaceStyle == .dark {
if #available(iOS 13.0, *) {
playerView.videoGravity = .resizeAspectFill //.resizeAspect
player.currentItem?.preferredForwardBufferDuration = 6.0
} else {
// Fallback on earlier versions
}
if #available(iOS 11.0, *) {
playerView.contentOverlayView?.backgroundColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 1.0) //.init(white: 1, alpha: 0)
} else {
// Fallback on earlier versions
}
} else {
if #available(iOS 13.0, *) {
playerView.videoGravity = .resizeAspectFill //.resizeAspect
player.currentItem?.preferredForwardBufferDuration = 6.0
} else {
// Fallback on earlier versions
}
if #available(iOS 11.0, *) {
playerView.contentOverlayView?.backgroundColor = UIColor(displayP3Red: 1, green: 1, blue: 1, alpha: 1.0) //.init(white: 1, alpha: 0)
} else {
// Fallback on earlier versions
}
}
}