             
             let oldItem = oldValue() as AVPlayerItem?
             /* Process old item */ do {
-                oldItem?.asset.removeObserver(self,
-                                              forKeyPath: #keyPath(AVAsset.duration))
                 oldItem?.removeObserver(self,
                                         forKeyPath: #keyPath(AVPlayerItem.status))
                 oldItem?.removeObserver(self,

            timebaseRangeToken = center.addObserver(
                forName: kCMTimebaseNotification_EffectiveRateChanged as NSNotification.Name,
                object: timebase,
                queue: nil) {  notification in
                    guard let object = notification.object else { return }
                    let timebase = object as! CMTimebase
                    emitDidChangeTimebaseRate(for: timebase)

    }
    
    deinit {
        player.currentItem?.removeObserver(self,
                                           forKeyPath: #keyPath(AVPlayerItem.status))
        player.currentItem?.removeObserver(self,
