ios - Progress of playbackLikelyToKeepUp -


when using avplayer, there way progress of playbacklikelytokeepup? thinking @ loadedtimeranges see how has been buffered far, understand, playbacklikelytokeepup property internally made prediction , not provide value of how data needed true.

to put perspective, i'm trying have progress view reaches 100% video starts playing.

to begin playing when avplayer play continuously, can observe key-value changes on playbacklikelytokeepup, this:

let playerkeepup = "playbacklikelytokeepup" var isplayerready:bool = false 

and in initialiser add:

// adding observers status: self.player?.currentitem?.addobserver(self, forkeypath: playerkeepup, options: ([nskeyvalueobservingoptions.new, nskeyvalueobservingoptions.old]), context: &playeritemobservercontext) 

and finally, track when player ready play without getting stuck:

// mark: kvo observing methods: override public func observevalueforkeypath(keypath: string?, ofobject object: anyobject?, change: [string : anyobject]?, context: unsafemutablepointer<void>) {     switch (keypath, context) {         case (playerkeepup string, &playeritemobservercontext):             if(self.player.currentitem?.playbacklikelytokeepup == true) {                     self.isplayerready = true // here fill progress view :-)                     self.delegate?.playerready(self.playerurl! string)              }             break         default:             super.observevalueforkeypath(keypath, ofobject: object, change: change, context: context)     } } 

last not least, remember remove kvo observance or else you'll crash when de-allocating player:

deinit { // remove observer:               self.player?.currentitem?.removeobserver(self, forkeypath: playerkeepup, context: &playeritemobservercontext) } 

hope helps :-)


Comments