/**
  * permite reproducir los primeros segundos de cada canción en orden aleatorio y cumple los
  * siguientes requisitos: Cada canción debe reproducirse una única vez y deben reproducirse todas
  * las canciones. Los contadores de reproducción deben actualizarse correctamente. Debe mostrar
  * por pantalla los detalles de la canción que está sonando en este momento. --------------------
  * 0057
  */
 public void
     playSuffle() { // ------------------------------------------------------------------------------ 0057
   Collections.shuffle(
       tracks); // ---solo con esta línea la colección queda desordenada aleatoriament.
   for (Track track : tracks) {
     track.incrementaContadorReproduciones();
     System.out.println("Canción de. " + track.getDetails());
     player.playSample(track.getFilename());
   }
 }
 /**
  * Play a track in the collection.
  *
  * @param index The index of the track to be played.
  */
 public void playTrack(int index) {
   if (indexValid(index) && reproduciendose == false) {
     Track track = tracks.get(index);
     track
         .incrementaContadorReproduciones(); // ----------------------- 0052 para incrementar el nº
                                             // de reproducciones
     reproduciendose = true; // --------------------------------------- 0054
     player.startPlaying(track.getFilename());
     System.out.println("Now playing: " + track.getArtist() + " - " + track.getTitle());
   } else {
     System.out.println("Error ya hay una reproducción en curso ");
   }
 }
  /** OTRA FORMA DE HACER EL EJERCICO DEL MT. public void playSuffle() */
  public void playShuffle2() {
    ArrayList<Track> copia = new ArrayList<>();
    copia = (ArrayList) tracks.clone();
    int numeroDeCancionesReproducidas = 0;
    while (numeroDeCancionesReproducidas < tracks.size()) {
      // elijo nº aleatorio entre las canciones que quedan por elegir.
      Random aleatorio = new Random();
      int numeroAleatorio = aleatorio.nextInt(copia.size());

      Track trackElegido = copia.get(numeroAleatorio);
      trackElegido.incrementaContadorReproduciones();
      System.out.println("Canción de. " + trackElegido.getDetails());
      player.playSample(trackElegido.getFilename());

      copia.remove(numeroAleatorio);
      numeroDeCancionesReproducidas++;
    }
  }