Créateur de playlist mp3

Soyez le premier à donner votre avis sur cette source.

Vue 22 999 fois - Téléchargée 1 173 fois

Description

Ce programme va rechercher tous les fichiers avec l'extension .mp3(ou autres...) sur tous les disques donnés en paramètres, et ensuite créer une playlist.

Vous pouvez changer les extensions en modifiant cette ligne :
if (morceau.endsWith(".mp3") || morceau.endsWith(".wma")||morceau.endsWith(".asx")

Vous pouvez également changer les disques a lister en modifiant le fichier Make.bat
ligne par défaut : java PlayList C:\
Pour ajouter un disque : java PlayList C:\ D:\ E:\ par exemple.

Source / Exemple :


/********************************************************/
/*           Développé par Dorian Ganganelli            */
/*                 && Geoffroy Vigneron                 */        
/********************************************************/

import java.io.*;

public class PlayList{
  static boolean CLEAR = false;
  protected String dirFile;
  protected File[] fileList;
  public static long COUNT = 0;
  public static int compteur = 0;
  public String nouveauFichier;
  protected FileWriter fwrite;
  public static FileWriter fw;
  protected String morceau;
  protected String history=null;
  boolean debut = false;
  public static int TOTAL = 0;
  public static char drive = 'c';

  public PlayList(String racine){
    this.dirFile = racine;
    nouveauFichier = dirFile;
    this.fileList =lister( new File(dirFile));
    afficher(this.fileList);
  }

  public static void main(String[] args){
    drive = args[0].charAt(0);
    int tout = 0;
    for (int i=0 ; i<args.length;i++){
      TOTAL=0;
      //CLEAR = true;
      if (new File(args[i]).isDirectory())
        new PlayList(args[i]);
      tout += TOTAL;
      /*try{
        fw.write(TOTAL +" PlayLists générées dans "+args[i]+"\n");
        fw.write("----------------------------------------------------------\n");
         if (i==args.length-1){
           fw.write("Total PlayLists générées " + tout + "\n\n");
         }
           fw.close();
         }catch(IOException io){}*/System.out.println(compteur);
    }
  }

  public File[] lister(File f){
    File[] retour = f.listFiles();
    return retour;
  }

  public void afficher(File[] list){
    //CLEAR = false;
    for (int i = 0; i < list.length; i++){
      debut = i==0;
      if (list[i].isDirectory()){
        afficher(lister(list[i]));
      }else{
         this.morceau = list[i].getName();
        if (morceau.endsWith(".mp3") || morceau.endsWith(".wma")||morceau.endsWith(".asx")
            ){
          String fic = list[i].getParent()+"\\"+souschaine(list[i]);
          String morc=list[i].getParent()+"\\"+morceau;
          System.out.println(morc);
          ecrire(fic,morc);
                    
          history = fic;
        }
      }
    }
    COUNT++;
    
  }

  public void ecrire(String destination, String titre){
    try{
      /*fw = new FileWriter(drive+":\\rapport_list.txt",true);
      if (debut) {
        fw.write(destination + "\n");
        System.out.println("Destination : "+destination);
        TOTAL++;
      }*/
      //if ( CLEAR  )
     //   this.fwrite = new FileWriter(destination,true);
      //else
      this.fwrite = new FileWriter("playlist.m3u",true);
      fwrite.write(titre+"\n");
      //CLEAR = true;
      compteur++;
      fwrite.close();
    // System.out.println(compteur);	
     // fw.close();
    }catch(IOException io){}
  }

  public String souschaine (File f){
    String resultat = "";
    String parent = f.getParent();
    String parentParent = f.getParentFile().getParent();
    resultat = parent.substring(parentParent.length()+1)+".m3u";
    return resultat;
  }
}

Conclusion :


Rien de bien compliqué pour comprendre le fonctionnement.
Remerciements : vivi57

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

zadji
Messages postés
3
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
19 avril 2009

Bonjours,

Je débute dans le java et je me mperd un tout petit peu. Je n'arrive pas à voir où je devrais passer en parramètre le chemin d'acces d'un dossier pour généré la playlist m3u.

Quelqu'u pourrait il m'aider, s'il vous plait ??
gyomhdeus
Messages postés
1
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
11 juin 2006

le programme est classe mais la methode write dans
" fwrite.write(titre+"\n"); " me laisse perplexe, un petit coup de main pour sa compréhension ne serai pa de refus ;-)
cs_stillfelil
Messages postés
108
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
12 septembre 2009
2
G juste une petite remark sur le source
cé que certains testes oré pu etre abrégé
c concernant le teste "isDirectory()" , code auré pu etre abrégé en l'introduisant a l'interieur de "lister(File)" comme suite:
//-----
public static File[] lister(File dir)
{
if(dir.isDirectory())
return dir.listFiles();
return null;
}
//------
cs_shown
Messages postés
40
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
24 décembre 2007

Oué après faut voir si tu préféres choisir les disques ou rechercher partout automatiquement comme tu dis... question de goût mais c'est vrai que ça aurait été mieux :)
cs_neodante
Messages postés
2835
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10
Pour ce qui est des disques à parcourir, est-ce que l'énumération de tous les disques ne serait pas mieux ??? Surtout que cela ne prend que peu de temps à mettre en place ... File.listRoots() ...

++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.