Зацикливание потокового видео HLS - 2-секундный клип - PullRequest
0 голосов
/ 16 июня 2020

Я использовал подход AVQueuePlayer и AVPlayerLooper для l oop относительно короткого клипа - 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()  
    }  
}  

}  
...