Forums Développement Multimédia

Aller au contenu

Les evenements NetStream

CODE Actionscript

9 réponses à ce sujet

#1 kirayamato300586

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 08 September 2008 - 12:11 PM

Bonjour à tous,

Je voudrais savoir quels sont les évènements NetStream qui me permettent de détecter quand la mise en mémoire tampon reprend et s'arrête pour pouvoir afficher et cacher mon icone de buffering.

Quelqu'un a-t-il la solution?

Merci pour votre aide ^^

#2 phil

  • Members
  • PipPipPipPipPipPipPipPip
  • 738 messages

Posté 08 September 2008 - 13:45 PM

Citation (Kira300586 @ Sep 8 2008, 01:11 PM) Voir le message
Bonjour à tous,

Je voudrais savoir quels sont les évènements NetStream qui me permettent de détecter quand la mise en mémoire tampon reprend et s'arrête pour pouvoir afficher et cacher mon icone de buffering.

Quelqu'un a-t-il la solution?

Merci pour votre aide ^^


Salut,

Tout est marqué dans la doc de Flash. deal.gif

A+


#3 kirayamato300586

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 08 September 2008 - 13:54 PM

Tu l'as dis tout est marqué dans la doc de Flash mais tout ne marche pas comme je voudrais, c'est pour ça que je pose la question.

J'ai mis des ecouteurs d'évènement sur les status "NetStream.Buffer.Full" et "NetStream.Buffer.Empty" mais ça ne marche pas tout le temps, j'ai un status empty qui n'est suivi d'aucun full donc je voulais savoir si j'avais bien fait.



#4 phil

  • Members
  • PipPipPipPipPipPipPipPip
  • 738 messages

Posté 08 September 2008 - 14:00 PM

Citation (Kira300586 @ Sep 8 2008, 02:54 PM) Voir le message
Tu l'as dis tout est marqué dans la doc de Flash mais tout ne marche pas comme je voudrais, c'est pour ça que je pose la question.

J'ai mis des ecouteurs d'évènement sur les status "NetStream.Buffer.Full" et "NetStream.Buffer.Empty" mais ça ne marche pas tout le temps, j'ai un status empty qui n'est suivi d'aucun full donc je voulais savoir si j'avais bien fait.

Essai de nous laisser un bout de code stp ...
Sinon essaie d'utiliser bufferLength et bufferTime pour déterminer quand est-ce que ta vidéo va redémarrer !

Bon courage.

#5 kirayamato300586

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 08 September 2008 - 14:10 PM

voila la creation de mon flux video :

Action Script

var connexion:NetConnection = new NetConnection();
connexion.connect(null);
var son:SoundTransform = new SoundTransform(1, 0);
var stream:NetStream = new NetStream(connexion);
stream.bufferTime = 3;
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsync);
stream.addEventListener(NetStatusEvent.NET_STATUS, onStatus);

la fonction onStatus :

Action Script

function onStatus(s:NetStatusEvent):void {
trace(s.info.code);
switch(s.info.code) {
case "NetStream.Play.Stop" :
onCompleted();
break;

case "NetStream.Buffer.Full" :
case "NetStream.Buffer.Empty" :
onBuffering(s.info.code);
break;

}
}

La function onBuffering :

Action Script

function onBuffering(m:String):void {
if(m == "NetStream.Buffer.Full") {
player.display.buffer.visible = false;
} else {
player.display.buffer.visible = true;
}
}

Est ce que avous parait correcte?


#6 phil

  • Members
  • PipPipPipPipPipPipPipPip
  • 738 messages

Posté 08 September 2008 - 14:21 PM

Perso ça me paraît correcte, mais quel est le bug stp ? Arrive-tu a reproduire le bug ou est-ce aléatoire ? ...

Heu ne faut-t-il pas changer ça :

Action Script

case "NetStream.Buffer.Full" : 
case "NetStream.Buffer.Empty" :
onBuffering(s.info.code);

en ça :

Action Script

case "NetStream.Buffer.Full" : onBuffering(s.info.code); 
case "NetStream.Buffer.Empty" : onBuffering(s.info.code);

A+

Modifié par ARROWPHIL, 08 September 2008 - 14:25 PM.


#7 kirayamato300586

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 251 messages

Posté 08 September 2008 - 14:42 PM

C'est aléatoire malheureusement =o/
Mon bug est que l'évènement empty se manifeste en pleine lecture sans arréter la vidéo et n'est pas suivie d'un full...

Est ce normal?

#8 phil

  • Members
  • PipPipPipPipPipPipPipPip
  • 738 messages

Posté 08 September 2008 - 14:54 PM

Citation (Kira300586 @ Sep 8 2008, 03:42 PM) Voir le message
C'est aléatoire malheureusement =o/
Mon bug est que l'évènement empty se manifeste en pleine lecture sans arréter la vidéo et n'est pas suivie d'un full...

Est ce normal?

Je ne saurais te répondre essai avec ces quelques modifs de ton code :

Action Script

function onStatus(s:NetStatusEvent):void { 
trace(s.info.code);
switch(s.info.code) {

case "NetStream.Play.Stop" : onCompleted();
break;

case "NetStream.Buffer.Full" : onBuffering(s.info.code);
break;

case "NetStream.Buffer.Empty" :onBuffering(s.info.code);
break;

}
}

As-tu essayé sur plusieurs machines, des fois (surtout dans le traitement de grosses données) il suffit que la machine cliente ne soit pas assez costaud pour que des problèmes arrivent.

A+

Modifié par ARROWPHIL, 08 September 2008 - 14:55 PM.


#9 Krevare

    Ceinture Noire

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 923 messages

Posté 22 July 2011 - 16:55 PM

Bonjour à tous,

Je rencontre les mêmes soucis que les personnes précédentes...
Mes événements buffer full et empty sont déclenchés de manière un peu aléatoire :cry:

Quelqu'un aurait une solution ?

Je procède comme ceci pour le moment :


ns.addEventListener(NetStatusEvent.NET_STATUS, netstat);
function netstat(stats:NetStatusEvent) {
        trace (stats.info.code)
       
        debug.endvideo.text = ("Video en cours : " + currentVideo);
        //trace ("onNetStatEvent")

                        if (stats.info.code == "NetStream.Buffer.Full") {
                buffertest.visible = false;
        }
                        if (stats.info.code == "NetStream.Buffer.Empty") {
                buffertest.visible = true;
        }
       
                        if (stats.info.code == "NetStream.Play.Stop" ) {
                buffertest.visible = false;
        }
}


#10 kamtron

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 156 messages

Posté 22 July 2011 - 19:27 PM

développes-tu en local ?

ces deux évènements sont plutôt liés lors de la lecture d'une vidéo.
lorsque la connexion est trop lente, le buffer devient 'empty', puis ce dernier ce rempli pour lancer un 'buffer full' un fois fait.
il me semble qu'en local tu ne devrais voir empty et full qu'une seul fois en début de lecture.

edit: ah et un switch case c'est plus sexy :lol:

Modifié par kamtron, 22 July 2011 - 19:28 PM.




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

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