Зацикливание потокового видео HLS - 2-секундный клип
Я использовал подход AVQueuePlayer и AVPlayerLooper, чтобы зациклить относительно короткий клип - 2-секундный клип. Стримит впервые, нормально. Когда он начинает зацикливаться, он показывает пустой экран в конце, а затем возвращается назад и прыгает в клипе на полпути, или иногда это нормально. Это не подходит для требований приложения ios. Какие здесь предложения / варианты?
Вот код -
class VideoView: UIView {
var player : AVQueuePlayer!
var playerLayer : AVPlayerLayer!
var playerLooper : AVPlayerLooper!
override init(frame: CGRect) {
super.init(frame: frame)
sharedInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sharedInit()
}
override func prepareForInterfaceBuilder() {
sharedInit()
}
func sharedInit() {
self.layer.masksToBounds = true
self.layer.cornerRadius = 20
player = AVQueuePlayer()
playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = .resizeAspectFill
}
func update(mcState : MultipleChoiceStates, url : URL) {
if(mcState == .check) {
player.pause()
let item = AVPlayerItem(url: url)
playerLooper = AVPlayerLooper(player: player, templateItem: item)
self.layer.addSublayer(playerLayer)
player.play()
}
}
}