anchor.diff:  
     Future<void> _openPlaylistCurrent() async {
       if (_playlist != null) {
  +      if (shuffle) {
  +        _playlist.shuffleAudios();
  +      } else {
  +        _playlist.fillPlayedAudios();
  +      }
         return _open(
           _playlist.currentAudio(),
           forcedVolume: _playlist.volume,
  
positive.code:             playlist: this._current.value.playlist,
            ));
          }
          _playlist.shuffle();
          await _openPlaylistCurrent();
          return true;
        }
  
        if (_playlist.hasNext()) {
          if (this._current.value != null) {
            _playlistAudioFinished.add(Playing(
  
negative.code:     if (hasNext()) {
        playlistIndex += 1;
      }
      return playedAudios[playlistIndex];
    }
  
    List<int> playedAudios = [];
  
    fillPlayedAudios() {
      for (var i = 0; i < this.playlist.audios.length; i++) {
        playedAudios.add(i);
      }
    }
  
    clearPlayeAudio(bool shuffle) {
      playedAudios.clear();
      if (shuffle) {
        shuffleAudios();
      } else {
        fillPlayedAudios();
      }
    }
  
    shuffleAudios() {
      for (var i = 0; i < this.playlist.audios.length; i++) {
        playlistIndex = _shuffleNumbers();
        playedAudios.add(playlistIndex);
      }
    }
  
    int _shuffleNumbers() {
  