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

    }
    
    private func updateNonObservableProperties() {
        if let timebaseRate: Float64 = CMTimebaseGetRate(self.currentItem!.timebase!){
            if timebaseRate == 1.0 {
                self.postEvent(event: PlayerEvents.playing())
                nonObservablePropertiesUpdateTimer.suspend()
            }
            
            PKLog.trace("timebaseRate:: \(timebaseRate)")
        }
    }
}

    }
    
    public override func pause() {

        if self.rate == 1.0 {
            // Playing, so pause.
            PKLog.trace("pause player")
