Lecteur MP3 aléatoire


Lecteur de musique MP3 aléatoire

On souhaite réaliser une application en C# qui après avoir sélectionner un répertoire joue les musiques de tout ce répertoire et ces sous-répertoire de façon aléatoire.
L'application a trois boutons :
- Choix répertoire : permet de sélectionner le répertoire racine de la recherche de toutes les musiques se trouvant dans l'arborescence descendante
- Lecture : permet de jouer la prochaine musique, toujours aléatoirement
- Liste titre : affiche tous les morceaux trouvés dans l'arboresence descendante
Dès qu'un morceau est fini, un autre est choisi automatiquement de façon aléatoire et est joué.
Le titre du morceau en cours est affiché de même que le répertoire racine sélectionné.
Aide au démarrage
En vous aidant du diagramme de classes suivant :
La classe Lecteur :
Elle permet de retrouver toutes les musiques qui se trouvent sur l'ordinateur à partir d'un répertoire racine. Elle permet de retourner un titre choisit au hasard dans tout ceux du PC.
Attributs :
- string cheminDeBase : Répertoire de base pour la recherche des musiques
- bool change : Faux : il n'y a pas eu de changement de répertoire de base entre 2 musiques, sinon, vrai
- Random alea : Moteur de nombre aléatoire
- string[] listeMP3 : Liste des titres de musique trouvés à partir du répertoire de base
Méthodes :
- void creeListeMP3(string repertoire) : Crée/ajoute à listeMP3 la liste des fichiers MP3 du répertoire "repertoire" sans tenir compte des sous-répertoires
- void creeListeTotale(string repertoireCourant) : Crée la liste complète de tous les fichiers MP3 se trouvant dans l'arborescence commençant au répertoire "repertoireCourant"
- void sauveListe(string chemin) : Enregistre le contenu de la liste des MP3 dans un fichier listeMP3.txt se trouvant dans le répertoire chemin
- string joue() : Si la listeMP3 n'existe pas, la crée puis retourne un titre de musique pris aléatoirement dans cette liste
- setCheminDeBase(string chemin) : Change le nom du répertoire de base et met change à vrai
- string getCheminDeBase() : Retourne le nom du répertoire de base de la recherche
- void setChange() : Met change à vrai
La classe Form1:
La classe Form1 est la fenêtre principale de l'application
Elle a un Lecteur et deux composants :
- AxWMPLib.AxWindowsMediaPlayer qu'il faut ajouter en référence avant de le glisser dans la Form1.
C'est un Windows Media Player qui permet d'écouter la musique. A la fin d'un musique, un évènement PlayStateChange est levé. Il faut alors démarrer un timer très court qui changera l'URL pour écouter une autre musique
- Timer de 10 millisecondes qui changera l'URL du média en utilisant la méthode joue du lecteur
La Form1 a encore trois boutons "classiques"
- Choix répertoire : un FolderBrowserDialog permet de choisir un nouveau répertoire de base pour le lecteur et de relancer une musique
- Lecture : Change de musique
- Liste Titre : Affiche la liste des MP3 contenu dans le répertoire de base et ses sous-répertoire
et deux TextBox
- Répertoire courant : nom du répertoire de base de recherche
- Titre : nom du fichier MP3 qui est en train d'être joué

