     func destroy() {
         PKLog.trace("destory player")
         self.nonObservablePropertiesUpdateTimer?.invalidate()
+        self.nonObservablePropertiesUpdateTimer == nil
         self.removeObservers()
-        avPlayerLayer = nil
-        _view = nil
-        onEventBlock = nil
+        self.avPlayerLayer = nil
+        self._view = nil
+        self.onEventBlock = nil
     }
     
     @available(iOS 9.0, *)

        
        avPlayerLayer = AVPlayerLayer(player: self)
        _view = PlayerView(playerLayer: avPlayerLayer)
    
        self.onEventBlock = nil
        self.nonObservablePropertiesUpdateTimer = nil
    }

            if let timebase = currItem.timebase {
                if let timebaseRate: Float64 = CMTimebaseGetRate(timebase){
                    if timebaseRate > 0 {
                        self.nonObservablePropertiesUpdateTimer?.invalidate()
                        
                        self.postEvent(event: PlayerEvents.playing())
                    }
