     func cancelOnEventTask() {
         guard let mTimer = _timer else {return}
         mTimer.invalidate()
+        _timer = nil
         isEventTimerTaskRunning = false
     }
     
-	func trackStart() {
-    
-	}
-    
     func trackPlayAndONEvent() {
-        
+        sendEvents(.play, .online)
     }
     
     func trackPauseEvent() {
-        
+        sendEvents(.pause)
     }
     
     func trackLoadEvent() {
-        
+        sendEvents(.load)
     }
     
     func trackOnEvent() {
-        
+        sendEvents(.online)
     }
     
-    func sendEvents(_ events: String...) {
+    func sendEvents(_ events: STTM2Event...) {
         
         var finalEvent: String?
         
         if events.count > 1 {
-            finalEvent = events.joined(separator: ",")
+            finalEvent = events.map{$0.rawValue}.joined(separator: ",")
         } else {
-            finalEvent = events[0]
+            finalEvent = events[0].rawValue
         }
         
         


	
	@objc private func timerHandlerOnEvent() {
		
	}
}



extension TrackingLive: SambaPlayerDelegate {
    
    func onLoad() {
        sttm2?.trackLoadEvent()
    }
    
    func onResume() {
        if let mSttm2 = sttm2, !mSttm2.isOnEventTaskRunning() {
            sttm2?.trackPlayAndONEvent()
            sttm2?.startOnEventTask()
        }
    }
    
    func onPause() {
        sttm2?.cancelOnEventTask()
        sttm2?.trackPauseEvent()
    }
    
    func onError(_ error: SambaPlayerError) {
        sttm2?.cancelOnEventTask()
    }
    
    func onFinish() {
