Construire un lecteur MP3

Nous nous proposons aujourd'hui de construire un lecteur MP3 à partir d'un fichier XML. Ce fichier contient bien sûr la liste des fichiers mp3 qui pourront être lus.

Chargement de la sélection musicale

Le fichier XML

Structure du lecteur

Structure du lecteur

Le lecteur est un clip contenant une occurrence du composant ComboBox nommée playList_cbx et initialisée à la donnée Sélectionner, Le clip contient également deux clips servant de boutons, quatre zones de texte statiques et quatre zones de texte dynamiques ainsi que deux occurrences d'un clip servant de curseur de réglage. Tous ces éléments sont judicieusement sur différents calques en fonction de leurs types.

Le symbole clip du lecteur est nommé mc:player tandis que l'occurrence placée sur la scène est nommée player_mc.

Lecture de la liste

La liste est lue depuis la première image-clé de la scène principale et est chargée directement dans la liste déroulante du lecteur.

Il serait certainement plus raisonnable de lire la liste depuis la première image clé du scénario du clip. N'hésitez pas à essayer, il n'y a rien de tel pour apprendre.

 

Fonctionnement du lecteur MP3

Attention : tout le code de cette partie se trouve sur la première image-clé du scénario du clip.

Indiquer la fonction de rappel

La première chose à faire est d'indiquer quelle est la fonction de rappel à invoquer lorsque l'on change de sélection dans la liste déroulante. La technique n'est pas la même que d'habitude : comme Flash ne semble pas connaître d'événement onChange, il est impossible d'écrire

playList_cbx.onChange = function() { etc }

Heureusement, le composant ComboBox dispose de la méthode setChangeHandler qui demande le nom de la fonction de rappel. Notez qu'il faut indiquer celui-ci entre guillemets. Notez également qu'il est possible d'indiquer la fonction de rappel dans la fenêtre de propriétés du composant.

L'objet Sound

La seconde chose à faire est de créer un objet Sound qui contiendra le mp3 en cours d'exécution. Cet object est nommé playingNow.

Que fait la fonction de rappel ?

La fonction charger() commence par vérifier que l'utilisateur a bien fait une sélection, autrement dit, que l'index sélectionné de la boîte de liste est différent de 0 (ligne 5).

Si c'est le cas, l'objet playingNow uilise la méthode loadSound() pour charger un fichier mp3. Le nom du fichier mp3 est contenu dans la propriété label de l'objet renvoyé par getSelectedItem() du ComboBox. Le paramètre true indique que le fichier doit être chargé en streaming (ligne 6). Les lignes 7 et 8 affichent la durée totale et le nombre d'octets du fichier dans des zones de textes dynamiques dont les noms indiquent clairement le contenu. Finalement, les lignes 9-12 définissent une petite fonction de rappel anonyme pour l'événement onLoad de l'objet son.

Affichage dynamique et réglages

Il s'agit maintenant d'afficher le nombre d'octets lus et le temps écoulé. On voudrait également pouvoir régler le volume du son et la balance. Tout ceci doit se faire dans la fonction de rappel de l'événement enterFrame du clip.

Les boutons de réglage

Les boutons de réglage sont des occurrences du clip mc:réglage. Celui-ci est formé sur un calque d'un simple rectangle (120px X 20px) à coins arrondis servant de fond et sur un autre calque d'une occurrence de symbole mc:rainure.

Le clip mc:rainure est formé d'un simple trait continu de 100 pixels et sur un autre calque d'une occurrence du curseur.

Le curseur est un simple cercle de 8 pixels de diamètre.

Comment activer les boutons de réglage

L'occurrence du curseur sur la rainure contient du code.