anchor.diff:      if (audio != null) {
         _respectSilentMode = respectSilentMode;
         String path;
  -      path = await onPlay(audio);
  +      if (onPlay != null) {
  +        try {
  +          path = await onPlay(audio);
  +        } catch (e) {
  +          print(e);
  +          return Future.error(e);
  +        }
  +      } else {
  +        path = audio.path;
  +      }
         try {
           Map<String, dynamic> params = {
             "id": this.id,
  
positive.code:   /// if it was'nt shuffling -> now it is
    void toggleShuffle() {
      shuffle = !shuffle;
    }
  
    /// Call it to dispose stream
  
negative.code: 
    /// returns the looping state : true -> looping, false -> not looping
    bool get loop => _loop.value;
    bool get shuffle => _shuffle.value;
  
    bool _respectSilentMode = _DEFAULT_RESPECT_SILENT_MODE;
  
  