-
-
Save kyo504/2a7c757d7dfc01573ee73dd11ba5c45e to your computer and use it in GitHub Desktop.
Revisions
-
Michael Dobekidis revised this gist
Feb 23, 2018 . 1 changed file with 10 additions and 6 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,27 +3,33 @@ self.audioQueueObserver = self.playerQueue?.observe(\.currentItem, options: [.ne [weak self] (player, _) in print("media item changed...") } // listening for current item status change self.audioQueueStatusObserver = self.playerQueue?.currentItem?.observe(\.status, options: [.new, .old], changeHandler: { (playerItem, change) in if playerItem.status == .readyToPlay { print("current item status is ready") } }) // listening for buffer is empty self.audioQueueBufferEmptyObserver = self.playerQueue?.currentItem?.observe(\.playbackBufferEmpty, options: [.new]) { [weak self] (_, _) in print("buffering...") } // listening for event that buffer is almost full self.audioQueueBufferAlmostThereObserver = self.playerQueue?.currentItem?.observe(\.playbackLikelyToKeepUp, options: [.new]) { [weak self] (_, _) in print("buffering ends...") } // listening for event that buffer is full self.audioQueueBufferFullObserver = self.playerQueue?.currentItem?.observe(\.playbackBufferFull, options: [.new]) { [weak self] (_, _) in print("buffering is hidden...") } // listening for event about the status of the playback self.audioQueueStallObserver = self.playerQueue?.observe(\.timeControlStatus, options: [.new, .old], changeHandler: { (playerItem, change) in if #available(iOS 10.0, *) { @@ -36,20 +42,18 @@ self.audioQueueStallObserver = self.playerQueue?.observe(\.timeControlStatus, op print("Media Waiting to play at specific rate!") } } else { // Fallback on earlier versions } }) // listening for change event when player stops playback self.audioQueueWaitingObserver = self.playerQueue?.observe(\.reasonForWaitingToPlay, options: [.new, .old], changeHandler: { (playerItem, change) in if #available(iOS 10.0, *) { print("REASON FOR WAITING TO PLAY: ", playerItem.reasonForWaitingToPlay?.rawValue as Any) } else { // Fallback on earlier versions } }) -
Michael Dobekidis created this gist
Feb 23, 2018 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,55 @@ // listening for current item change self.audioQueueObserver = self.playerQueue?.observe(\.currentItem, options: [.new]) { [weak self] (player, _) in print("media item changed...") } // listening for current item status change self.audioQueueStatusObserver = self.playerQueue?.currentItem?.observe(\.status, options: [.new, .old], changeHandler: { (playerItem, change) in if playerItem.status == .readyToPlay { print("current item status is ready") } }) // listening for buffer is empty self.audioQueueBufferEmptyObserver = self.playerQueue?.currentItem?.observe(\.playbackBufferEmpty, options: [.new]) { [weak self] (_, _) in print("buffering...") } self.audioQueueBufferAlmostThereObserver = self.playerQueue?.currentItem?.observe(\.playbackLikelyToKeepUp, options: [.new]) { [weak self] (_, _) in print("buffering ends...") } self.audioQueueBufferFullObserver = self.playerQueue?.currentItem?.observe(\.playbackBufferFull, options: [.new]) { [weak self] (_, _) in print("buffering is hidden...") } self.audioQueueStallObserver = self.playerQueue?.observe(\.timeControlStatus, options: [.new, .old], changeHandler: { (playerItem, change) in if #available(iOS 10.0, *) { switch (playerItem.timeControlStatus) { case AVPlayerTimeControlStatus.paused: print("Media Paused") case AVPlayerTimeControlStatus.playing: print("Media Playing") case AVPlayerTimeControlStatus.waitingToPlayAtSpecifiedRate: print("Media Waiting to play at specific rate!") } } else { // Fallback on earlier versions } }) self.audioQueueWaitingObserver = self.playerQueue?.observe(\.reasonForWaitingToPlay, options: [.new, .old], changeHandler: { (playerItem, change) in if #available(iOS 10.0, *) { print("REASON FOR WAITING TO PLAY: ", playerItem.reasonForWaitingToPlay?.rawValue as Any) } else { // Fallback on earlier versions } })