Afficher le pourcentage chargement d'un fichier mp3 [Résolu]

Signaler
Messages postés
37
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
25 février 2010
-
Messages postés
37
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
25 février 2010
-
Bonjour,
J'ai créer un .fla très simple :
un bouton play : charge la musique provenant d'un ftp (ca marche)
un bouton stop : arrete la musique (ca marche)

Seulement voila, j'aimerai bien voir le pourcentage de chargement du fichier mp3 qui est en train d'être chargé.
Bien évidemment j'ai utilise : getBytesLoaded()/getBytesTotal()*100
mais sans grand succès (en faite, avec la méthode utilisé, le pourcentage est de 100% alors qu'elle n'est toujours pas lancée (donc pas encore téléchargée entièrement))

Merci d'avoir pris le temps de lire mon annonce, et je vous remercie d'avantage si vous trouvez une solution à mon problème. (je pense qu'il est d'une mal utilisation de Loaded/Total)

6 réponses

Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Bonjour,

voici une proposition de code. Je te la donne sans certitudes, je n'ai pas de quoi la tester pour le moment.

Code à placer sur la frame 1




var intervalId:Number;
 
function progression():Void {
   GBL=sonHome.getBytesLoaded()
   GBT=sonHome.getBytesTotal()
   // Controler que le chargement a déjà commencer sinon on aura une division par 0 pour GBT
   if (GBT!=undefined){
       zone.text = "" + Math.floor((GBL/GBT)*100) + " % charge";
   }
   // Controle si le chargement est terminé
   if(GBL==GBT && GBT!=undefined) {
       clearInterval(intervalId);// On stop l'Interval
       sonHome.start(0, 2); // on lancele son
   }
}
 
function lanceChargementMP3(fichierMP3){
   // lancement du chargement
   sonHome.loadSound("

http://.../"+fichierMP3

, false);
   // lancement de l'Interval tous les 100 milisecondes
   intervalId = setInterval(this, "progression", 100);
}




code à placer sur le bouton play pour lancer un chargement de son


on (press) {
    lanceChargementMP3("musique.mp3")   
}


J'ai mis le nom du mp3 en parametre de la fonction, cela permet d'avoir plusieurs bouton pour différent son sans devoir modifier la fonction de chargement

Bonne journée

@+
Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Bonjour,

Tu n'as pas un morceau de code plus explicite ?
Avec les infos données on sait pas déduire grand chose...

sauf peut-être que tu controles le getBytesLoaded() et le getBytesTotal() de l'animation principale (déjà chargée forcément)

@+
Messages postés
37
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
25 février 2010

Rebonjour,
Alors voila sur le scénario principal j'ai mis :
sonHome = new Sound();

j'ai posé deux boutons : Play et Stop sur mon scénario principal
et un texte dynamique : de nom d'occurence (zone)
Voici le code dans le bouton Play :
on (press) {
    sonHome.loadSound("http://.../musique.mp3", true);
    sonHome.start(0, 2);
    zone.text = "" + (sonHome.getBytesLoaded()/sonHome.getBytesTotal()*100) + " % charge";
}

Voici le code dans le bouton Stop :
on (press) {
    sonHome.stop();
}

Si vraiment c'est pas clair demandez moi le .fla
Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Hello,

premièrement,
sonHome.loadSound("http://.../musique.mp3", true);
true signifie que c'est du streaming et donc l'animation n'attends pas que le chargement soit complet avant de lancer le son

deuxièmement,
zone.text = "" + (sonHome.getBytesLoaded()/sonHome.getBytesTotal()*100) + " % charge";
est placé dans le onPress, c'est a dire que cela ne s'affichera qu'une seule fois (lorsque tu presseras sur le bouton)

Si tu veux vraiment afficher le chargement de ton son, je créerais une fonction qui verifie le chargement du son (avec parametre false a loadSound) et affiche le pourcentage déjà chargé.
Ensuite j'appelerais cette fonction avec un setInterval() tous les X millieme de seconde
P.S. ne pas oublier de lancer le son (sonHome.starr(0,2) et d'arreter le setInterval un fois que le son est chargé !

@+
Messages postés
37
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
25 février 2010

Excuse moi mais j'ai jamais utilisée la variable SetInterval()
Tu pourrais m'expliquer plus en détail le fonctionnement de celui ci.
Enfin le fonctionnement je l'ai compris mais plutot l'application (comment l'utiliser)

merci
Messages postés
37
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
25 février 2010

Merci pour ce code, il m'a été d'une grande utilité.
En plus, le fait de l'avoir adapté pour plusieurs chansons, c'est comme mettre une cerise sur le gateau.

J'apporte juste une précision, meme en mettant :
sonHome.onLoad (http://.../musique.mp3 , true)

ca affiche aussi le chargement et ca joue la musique directement.
Merci encore