Comunidad de diseño web y desarrollo en internet online

NetStream.Play.Stop

Citar            
MensajeEscrito el 08 Abr 2008 08:33 am
Otra duda :crap:

Uso el evento NetStream.Play.Stop para saber cuando acaba la reproducción de un video y asi comenzar con el siguiente, pero se me presenta un problema porque el evento "salta" antes de que acabe realmente de reproducirse. Me explico, hago

Código :

...
stream.bufferTime=5;   
stream.play(publi);
....
switch (event.info.code) 
{
  case "NetStream.Play.Stop":
  stream2.play(video);
...

el video "publi" dura unos 15 segundos, y el evento salta como a los 10 segundos, si cambio el bufferTime a 7 pues salta a los 8.
¿Alguien sabe decirme por qué o proponerme alguna alternativa para saber realemente cuando termina de reproducirse el video?

Salu2 [/code]

Por Ayalga

18 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 08 Abr 2008 12:16 pm
El stop viene en dos momentos: cuando se agota el buffer por baja transferencia (previo Buffer.Empty) y al final. En el final, salta el stop, sigue reproduciendo hasta que se agota el buffer, luego Buffer.empty y Buffer.Flush.
Aquí el onStatus que uso para reproducir un NetStream:

Código :

   public function onStatus(info:Object) {
      //trace(info.code+" con buffer->"+this.bufferTime+" bufferLength"+this.bufferLength)
     lastInfo = info;
     if (info.level != "status"){
      reportChange(info.level);
      return;
     }
     var code = info.code.substr(NetStreamPlayBack.NS_MSG_INDEX);
      switch (code){
      case "Play.Start":
         if (! paused)
           reportChange("buffering");
        stopped = false;
         break;
      case "Play.Stop":
        if (this.bufferLength == 0 && !paused) {
         reportChange("playingAtEnd");
        }
        else {
           if(!paused) reportChange("playing");
        }
        stopped = true;
        break;
      case "Buffer.Empty":
         if (stopped){
         reportChange("playingAtEnd");
        }
        else{
           this.reportChange("buffering");
        }
        break;
      case "Buffer.Full":
         reportChange("playing");
        break;
      case "Seek.Notify":
         if (! this.paused){
          reportChange("buffering");
        }
        else{
         reportChange("seeking");
        }
        break;
      case "Pause.Notify":
         paused = true;
        reportChange("paused");
         break;
      case "Unpause.Notify":
         paused = false;
         break;
      default:
         reportChange("NetStream."+code);
     }
   }


Notarás que el stop chequea que el bufferTime sea 0 para reportarse, sino lo reporta el Buffer.Empty (evento playingAtEnd)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Abr 2008 08:49 am
Muchas gracias :D
Ahora mismo me pongo a probarlo

Por Ayalga

18 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 09 Abr 2008 10:38 am
:cry: Debo ser más torpe de lo que pensaba, probe lo que me dijiste, pero nunca me salta el evento con stream.bufferLenght==0. Con lo que no puedo localizar el fin real de la reproducción.
¿Alguna idea de por qué puede ser?

Gracias

Por Ayalga

18 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 09 Abr 2008 11:02 am
¿Porque no usas buffer?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.