如果您正在寻找更高效的方法来循环播放AVPlayerViewController中的视频,则可以使用AVQueuePlayer和AVPlayerLooper的组合。下面是一个示例代码,可以通过它来无限循环播放一段视频:
import AVFoundation
import AVKit
class ViewController: AVPlayerViewController {
override func viewDidLoad() {
super.viewDidLoad()
let videoURL = Bundle.main.url(forResource: "video", withExtension: "mp4")!
let playerItem = AVPlayerItem(url: videoURL)
let queuePlayer = AVQueuePlayer()
let playerLayer = AVPlayerLayer(player: queuePlayer)
playerLayer.frame = view.bounds
view.layer.insertSublayer(playerLayer, at: 0)
let looper = AVPlayerLooper(player: queuePlayer, templateItem: playerItem)
queuePlayer.play()
}
}
此代码在加载视图控制器时将视频添加到AVQueuePlayer中。然后,使用AVPlayerLayer将其添加到视图上,并使用AVPlayerLooper在重复播放AVPlayerItem时有效地循环播放。通过使用AVQueuePlayer和AVPlayerLooper的组合,可以避免AVPlayerViewController经常重新加载视频,提高性能并改善用户体验。