【发布时间】:2019-05-27 10:27:32
【问题描述】:
我正在尝试循环播放视频播放列表,并使用 AVPlayerItem 在 AVQueuePlayer 中循环播放播放列表中的单个视频剪辑,但我无法找到相同的解决方案,下面是我迄今为止尝试过的代码
一般
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()
任何帮助都会很棒。!!
【问题讨论】:
标签: ios swift video avplayeritem avqueueplayer