AVQueuePlayer playback without gap and freeze

后端 未结 3 1904
无人及你
无人及你 2020-12-05 12:19

I use AVQueuePlayer to play a sequence of movies which are loaded from URLs.
I tried to initialize player instance with array of all AVPlayerItems

3条回答
  •  时光取名叫无心
    2020-12-05 12:25

    in Swift 2, working here:

    func load() {
         let player = AVQueuePlayer()
         for url in urls {
            makeItem(url)
        }
    }
    
    func makeItem(url: String) {
        let avAsset = AVURLAsset(URL: NSURL(string: url)!)
    
        avAsset.loadValuesAsynchronouslyForKeys(["playable", "tracks", "duration"], completionHandler: {
            dispatch_async(dispatch_get_main_queue(), {
                self.enqueue(avAsset: avAsset)
            })
        })
    }
    
    func enqueue(avAsset: AVURLAsset) {
        let item = AVPlayerItem(asset: avAsset)
        self.player.insertItem(item, afterItem: nil)
    }
    

提交回复
热议问题