TUTORIELS 
Flash MX : un lecteur MP3 utilisant XML

Page 1 | 2

Envie d'une radio pour votre site ? Cet article vous donne les premiers outils, en combinant la simplicité du XML avec la puissance de Flash MX.
 (4 décembre 2003)
 
Gestion des mp3
chanson = new Sound();
chanson.onLoad = function(ok)
  {
  if (ok = true)
    {
    chanson.start();
    _root.ecranTitre = "Lecture de "+liste.getSelectedItem().data;
    }
  else
    {
    _root.ecranTitre = "Problème au chargement.";
    deselection();
    }
  };

chanson.onSoundComplete = function()
  {
  _root.ecranTitre = "Chanson terminée.";
  deselection();
  };

Nous abordons ici l'objet Sound() de Flash, qui regorge de méthodes et propriétés utiles. Nous n'en verrons ici qu'une petite partie...
Vous pouvez noter que le code pour charger un MP3 n'est pas bien différent de celui pour un fichier XML : les méthodes sont cohérentes. Une fois l'évènement .onLoad lancé (donc le MP3 chargé), on lance le son avec .start, et on affiche des informations dans notre champ ecranTitre.
Pour bien faire, nous exploitons aussi l'évènement .onSoundcomplete, qui se lance lorsque le MP3 a terminé d'être joué. Dans la fonction définie, nous affichons l'information, et désélectionnons le titre dans la liste via la fonction deselection(), présentée ci-après..

Gestion de la liste
liste.setSelectMultiple(false);
liste.setChangeHandler("userClic");

function userClic()
  {
  fichierEnCours = liste.getSelectedItem().data;
  chanson.loadSound(fichierEnCours, true);
  }

function deselection()
  {
  liste.setSelectedIndices(null);
  }

"liste" est un composant ListBox, nous avons donc accès à toutes ces méthodes. .setSelectMultiple(false) nous permet d'indiquer que l'utilisateur ne peut faire qu'une sélection à la fois, tandis qu'avec setChangeHandler(), nous définissons la fonction qui sera lancée lorsqu'il clic sur une entrée.
Cette fonction fait deux choses :
- copier le contenu "donnée" (le nom du fichier mp3) de l'entrée cliquée dans la variable fichierEnCours.
- lancer le chargement du fichier en question avec .loadSound, en précisant (avec true) qu'il est en "flux continu" : Flash commencera à le jouer avant même d'avoir terminé le chargement...

Notre petite fonction deselection(), quant a elle, ne fait que désélectionner les éléments de la ListBox, en mettant à null (rien) les "selected indices" (index sélectionnés).

Gestion du bouton
boutonStop.setClickHandler("arreterTout");
function arreterTout()
  {
  stopAllSounds();
  _root.ecranTitre = "Musique stoppée.";
  deselection();
  }

Pour lancer une fonction lors d'un clic sur notre PushButton, il faut passer par la méthode .setClickHandler. Ce clic aura ici trois conséquences :
- lancer la méthodes globales stopAllSounds(), qui coupe l'ensemble des sons en cours.
- afficher un message d'information dans le champ texte.
- désélectionner les éléments de la liste avec notre fonction deselection().

 

Forums
* Discutez en sur les forums

C'est bien entendu un exemple très basique de lecteur MP3. Nous vous invitons à tenter de l'améliorer... en attendant que nous écrivions une version plus complète pour un prochain article. Voici nos codes sources (sans les mp3, évidemment).


Page 1 | 2

 
[ Xavier BorderieJDNet
 
Accueil | Haut de page