【发布时间】:2021-02-13 23:48:08
【问题描述】:
我有一个 URL 数组,然后我将其转换为 AVPlayerItems 数组并使用 AVQueuePlayer 循环播放视频 - 通常一次播放 1-7 个视频。但是,当它停止时,我不确定如何再次启动它以播放相同的视频数组,直到用户切换到不同的视图控制器。
in viewDidLoad this creates the array of playerItems
//creates playerItems to play videos in a queue
postURLs?.forEach{(url) in
let asset = AVAsset(url: url)
let playerItem = AVPlayerItem(asset: asset)
playerItems.append(playerItem)
}
public func playVideo() {
player = AVQueuePlayer(items: playerItems)
player.seek(to: CMTime.init(value: 0, timescale: 1))
playerLayer = AVPlayerLayer(player:player)
playerLayer.frame = self.lifieView.frame
lifieView.layer.addSublayer(playerLayer)
player.play()
//restart video maybe? Tested but did not work - hits function
NotificationCenter.default.addObserver(
forName: .AVPlayerItemDidPlayToEndTime,
object: nil,
queue: nil) { [weak self] _ in self?.restart2() }
}
//this is test function to restart (works with AVPlayer with single video)
private func restart2(){
player.seek(to: CMTime.zero)
player.play()
}
【问题讨论】:
标签: ios swift avplayer avkit avqueueplayer