anchor.diff:  
     Duration _lastSeek;
   
  -  Future<String> Function(Audio) onPlay;
  -  Future Function() onStop;
  -
     /// returns the looping state : true -> looping, false -> not looping
     bool get loop => _loop.value;
     bool get shuffle => _shuffle.value;
  
positive.code:     _forwardRewindSpeed.close();
      _realtimePlayingInfos.close();
      _realTimeSubscription?.cancel();
      onStop();
      _players.remove(this.id);
    }
  
  
negative.code:     final currentAudio = _lastOpenedAssetsAudio;
      if (audio != null) {
        _respectSilentMode = respectSilentMode;
        try {
          Map<String, dynamic> params = {
            "id": this.id,
            "audioType": audio.audioType.description(),
            "path": audio.path,
            "autoStart": autoStart,
            "respectSilentMode": respectSilentMode,
            "displayNotification": showNotification,
  