                 if let contentUrl = sources[0].contentUrl {
                     PKLog.trace("prepareNext item for player")
                     self.replaceCurrentItem(with: AVPlayerItem(url: contentUrl))
+                    self.nonObservablePropertiesUpdateTimer.suspend()
+                    self.setupNonObservablePropertiesUpdateTimer()
                     self.addObservers()
                 }
             }

            if rate == 1.0 {
                nonObservablePropertiesUpdateTimer.resume()
            } else {
                event = PlayerEvents.pause()
            }
        } else if keyPath == PlayerStatusKey {

        PKLog.trace("init AVPlayer")
        super.init()
        
        avPlayerLayer = AVPlayerLayer(player: self)
        _view = PlayerView(playerLayer: avPlayerLayer)
    }
    
    private func setupNonObservablePropertiesUpdateTimer() {
        PKLog.trace("setupNonObservablePropertiesUpdateTimer")
        
        nonObservablePropertiesUpdateTimer.setEventHandler { [weak self] in
            self?.updateNonObservableProperties()
        }
        nonObservablePropertiesUpdateTimer.scheduleRepeating(deadline: DispatchTime.now(),
                                                             interval: DispatchTimeInterval.milliseconds(50))
    }
    
    /**
