Forums Développement Multimédia

Aller au contenu

Comment savoir si la lecture d'un MP3 a débuté en streaming

PAO Flash

13 réponses à ce sujet

#1 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 05 February 2003 - 12:49 PM

Je cherche à savoir que la lecture de mon MP3 a bien commencé en mode streaming pour affficher 'Chargement en cours' tant que la lecture n'a pas commencé.

J'ai le code suivant mais ça ne semble pas marcher :

on (release) {
SonEnCours.stop();
SonEnCours.loadSound("Cycledev.mp3",true);
_root.Chargement.text = "Chargement en cours";
while (SonEnCours.position=0) {
}
_root.Chargement.text = "";
SonEnCours.start();
}

#2 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 05 February 2003 - 12:57 PM

salut
par definition, si ton son est en "streaming", c'est pas la peine de fiare un preloader puiskil va demarer aussitot son lancement. En fonction de _soundbuftime. Par defaut >>>_soundbuftime = 5; mais tu peux le forcer ainsi >>> _soundbuftime = 0;
Si maintenant tu veux precharger ton son :
SonEnCours.loadSound("Cycledev.mp3",false);
et utiliser :
SonEnCours.getBytesLoaded(); et SonEnCours.getBytesTotal();

ps : SonEnCours.start(); ne sert a rien sur un son streamé!! il démarre tout seul…
voila
++ :wink:

#3 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 05 February 2003 - 14:27 PM

Merci pour l'info

Mais dans ce cas, est-il possible de savoir si le preload des n secondes de soundbuftime est terminé ou pas.

En fait, je voudrais faire du streaming mais tout de même afficher un message le temps que le buffer soit rempli

#4 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 05 February 2003 - 18:27 PM

alors utilise >>SonEnCours.getBytesLoaded(); et SonEnCours.getBytesTotal();
et regarde les tutoriaux sur le sound :wink:

#5 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 06 February 2003 - 10:21 AM

J'ai essayé cela sur un de mes boutons déclanchant la lecture d'un MP3

on (release) {
SonEnCours.stop();
SonEnCours.loadSound("Cyclesgbd.mp3", true);
_root.Chargement.text = "Chargement en cours";
while (SonEnCours.duration=0 || SonEnCours.GetBytesLoaded()*SonEnCours.duration/SonEnCours.GetBytesTotal()<10000) {
}
_root.Chargement.text = "";
}

mais le while semble bloquer toute l'animation.

J'ai aussi essayé cela mais je ne suis pas sur que la fonction soit appelée régulièrement durant la lecture du MP3.


on (release) {
SonEnCours.stop();
SonEnCours.loadSound("Cyclesgbd.mp3", true);
_root.Chargement.text = "Chargement en cours";
_root.onEnterFrame = function() {
if (SonEnCours.duration!=0 && SonEnCours.GetBytesLoaded()*SonEnCours.duration/SonEnCours.GetBytesTotal()>10000) {
delete this.onEnterFrame;
}
};

_root.Chargement.text = "";
}

Donc pour l'instant je ne trouve pas de solution.
Existe-t-il une fonction permettant de savoir si la buffer (en fonction de la valeur fournie à _soundbuftime) a été rempli ?

#6 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 06 February 2003 - 10:37 AM

salut
mets >>_soundbuftime=0; kom ça t'as pas besoin de savoir si le buffer est plein :wink:

#7 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 06 February 2003 - 11:01 AM

Ouais mais dans ce cas je ne peux pas faire du streaming avec une liaison modem par exemple

#8 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 06 February 2003 - 11:06 AM

exact! tout depend du poids de ton mp3 :wink:

#9 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 06 February 2003 - 12:36 PM

Donc pas de solution à mon problème

Bouoooo :hhhhhhhhhhhh

sad.gif sad.gif sad.gif

#10 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 06 February 2003 - 12:56 PM

bon… j'ai fait un truc rapide
CODE
tonSon = new Sound();

tonSon.loadSound("http://chezToi.fr/taMusique.mp3", true);

_root.onEnterFrame = function() {

tot = tonSon.getBytesTotal();

lod = tonSon.getBytesLoaded();

trace(pourc=Math.round((lod/tot)*100)+" %");

trace(poidtot=Math.round(tot/1000)+" Ko");

trace(poichar=Math.round(lod/1000)+" Ko");

if (pourc == "100 %") {

 trace("yes");

 delete _root.onEnterFrame;

}

};


:wink:

#11 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 06 February 2003 - 15:14 PM

Merci pour ton code, il marche nickel quand je débogue.
Par contre suite à cela je me suis rendu compte de qqchose

Voici mon code

on (release) {
SonEnCours.stop();
Chargement = "Chargement en cours";
SonEnCours.loadSound("Cyclesgbd.mp3", true);
_root.onEnterFrame = function() {
TailleTotale = SonEnCours.getBytesTotal();
TailleChargee = SonEnCours.getBytesLoaded();
trace(Pourcentage=Math.round((TailleChargee/TailleTotale)*100)+" %");
trace(poidtot=Math.round(TailleTotale/1000)+" Ko");
trace(poichar=Math.round(TailleChargee/1000)+" Ko");
if (Pourcentage == "200 %") {
trace("yes");
Chargement = "";
delete _root.onEnterFrame;
}
};
}


Mon texte dynamique Chargement en cours ne s'affiche pas. En fait j'ai l'impression que l'anim n'est pas réaffichée tant qu'on est pas sorti du code. Y-a-t-il une fonction pour forcer le refresh ?

#12 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 06 February 2003 - 15:22 PM

OK désolé c'est moi qui suit une burne
EN mettant cela ça va mieux :
_root.Chargement.text =""

Merci beaucoup pour ton partage de compétences

#13 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 06 February 2003 - 15:56 PM

(Pourcentage == "200 %")??????????
il faut mettre :
(Pourcentage == "100 %")
sinon la boucle ne s'arretera pas! :wink:

#14 JEJ1327249824

    Ceinture Blanche

  • Members
  • Pip
  • 14 messages

Posté 06 February 2003 - 16:36 PM

Oui c'était pour test pour être sur de voir le message s'afficher

Encore merci pour tout



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP