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