Я пытаюсь воспроизвести видео плейлист в цикле, а также воспроизвести отдельный видеоклип из плейлиста в цикле в AVQueuePlayer с помощью AVPlayerItem, но я не могу найти решение для того же самого ниже - код, который я пробовал до сих пор
General
var player : AVQueuePlayer?
var playerLayer: AVPlayerLayer?
var playerItem: [AVPlayerItem] = []
func playAtIndex(index:Int){
for i in index ..< playerItem.count {
let obj = playerItem[i]
if (self.player?.canInsert(obj, after: nil))! {
obj.seek(to: .zero, completionHandler: nil)
self.player?.insert(obj, after: nil)
}
}
}
Инициализация видеопроигрывателя
self.player = AVQueuePlayer.init(items: self.playerItem)
self.playerLayer = AVPlayerLayer(player: self.player)
self.playerLayer?.frame = self.view!.bounds
self.playerLayer?.videoGravity = AVLayerVideoGravity.resizeAspect
self.view!.layer.addSublayer(self.playerLayer!)
self.player?.play()
код, выполненный до сих пор для зацикливания плейлиста, это работает, но некоторые видео из цикла иногда не воспроизводятся.
self.playAtIndex(index: 0)
код сделан для зацикливания отдельного видеоклипа в плейлисте, но не работает
let playerItem: AVPlayerItem = note.object as! AVPlayerItem // here we get current item
playerItem.seek(to: CMTime.zero, completionHandler: nil)
self.player?.play()
Любая помощь будет отличной. !!