         switch context {
         case &kvoBufferingContext:
             handleBufferingEvent(keyPath)
-        case &kvoPlayerRateContext:
-            handlePlayerRateChanged()
         default:
             break
         }

        guard let player = player, player.observationInfo != nil else { return }
        player.removeObserver(self, forKeyPath: "currentItem.playbackLikelyToKeepUp")
        player.removeObserver(self, forKeyPath: "currentItem.playbackBufferEmpty")
        player.removeObserver(self, forKeyPath: "rate")
        if let timeObserver = timeObserver {
            player.removeTimeObserver(timeObserver)
        }

    ]

    private var kvoBufferingContext = 0

    private(set) var seekToTimeWhenReadyToPlay: TimeInterval?
    
