Comunidad de diseño web y desarrollo en internet online

Fast Forward y Rewind para un FLV Actionscript3

Citar            
MensajeEscrito el 13 May 2009 08:59 pm
Hola a todos, antes de preguntar les explico que eestoy desarrollando :P :
Estoy desarrollando un player dinamico en AS3 con una carga dinamica de un video y una imagen desde el flashvars, un skin customize hecho por mi que compone tres botones (playpause button, back button y Forward button) con una Seek Bar y un contador de tiempo.
Ya he realizado la mayoria de las cosas:
1) Cuando mi player carga, muestra una imagen cargada dinamicamente a travez de flashvars.
2)Al hacer click en play la imagen desaparece y da paso a un video FLV cargado a travez de flashvars.
3)Cuando el video termina vualve a aparecer la imagen del principio.

Mi Play pause button funciona de maravilla, mi contador de tiempo tambien..

Hasta hay todo perfecto, he colocado los dos botones: back y forward... el primer problema es que cuando clickeas estos botones te llevan al extremo de la pelicula, es decir, si das click en back vas al inicio de la pelicula y si lo hacen en forward vas al final de esta...
Mi cliente me pide entonces que estos botones actuen como un verdadero rewind y fast forward... he intentado de crear funciones que hagan esto... pero no he encontrado una que realmente rebobine y adelante el video de la manera como lo haria un DVD... espero me entiendan, y puedan ayudarme con esto... es un reto para cualquier guru de ACTIONSCRIPT... he buscado documentacion por todo lado, y ahora vengo a uds. para que me ayuden...
Saludos!

Por oscarcangel

51 de clabLevel



 

2004

firefox
Citar            
MensajeEscrito el 14 May 2009 12:02 am
Observa en la ayuda de flash el método "seek" y la propiedad "playheadTime".

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 14 May 2009 01:55 pm
Gracia spor tu respuesta elchininet, evidentemente fue lo primero que hice cuando comence a tener problemas con estos botones... solo consegui con la ayuda de flash componer esta funcion para cada boton:

Código :

backbtn.addEventListener(
  MouseEvent.MOUSE_DOWN,
  function(event:MouseEvent):void {
   my_flvPlayback.playheadTime -= 2;
  }
);;


y

Código :

forbtn.addEventListener(
  MouseEvent.MOUSE_DOWN,
  function(event:MouseEvent):void {
   my_flvPlayback.playheadTime += 0.01;
  }
);


respectivamente, esto me da como resultado un pequenisimo salto del FLV (hacia delante o hacia atras) cada vez que presiono el boton... no es el resultado que quisiera... lo que busco es poder presionar en el boton para que adelante y retroceda el FLV como lo haces con tu control remoto en un dvd player...y cuando dejo de presionar, el video continua normalmente...

Por oscarcangel

51 de clabLevel



 

2004

firefox
Citar            
MensajeEscrito el 14 May 2009 02:24 pm
Dos cosas tienes que tener en cuenta:

- Un video puede hacer seek en la medida que tenga fotogramas clave, esto se determina a nivel de encoding
- Si es descarga progresiva, podrás ir hacia adelante en la medida en que esa porción de video haya sido descargada

Luego tienes que hacer un seek dentro de un onEnterFrame cuando le das al botón, y lo anulas cuando se suelta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 May 2009 02:45 pm
Gracias Jorge:
mis peliculas estan cargadas desde el tag obect del html a traves del flashvars y no tienen fotogramas claves... porfavor dime como hacer para anular la funcion cuando se suelta...

Por oscarcangel

51 de clabLevel



 

2004

firefox
Citar            
MensajeEscrito el 14 May 2009 03:10 pm
Los fotogramas claves están en el FLV, si lo has encodeado tu, entonces puedes volver a encodearlo si no te gusta, sino, solo cruza los dedos.

Para agregar un onEnterFrame:

Código ActionScript :

rewind.addEventListener(MouseEvent.CLICK, retrocede)
rewind.addEventListener(MouseEvent.RELEASE, para)
function retrocede(evt:MouseEvent){
  this.addEventListener(Event.ENTER_FRAME, atras)
}
function atras(evt:Event){
   my_flvPlayback.playheadTime -= 2;
}
function quita(){
  this.removeEventListener(Event.ENTER_FRAME, atras)
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 May 2009 03:28 pm
Hey Jorge!...gracias por ponerte en la tarea...
dos cosas... la propiedad de mouse RELEASE no existe en AS3, lo mismo CLICK... en la parte donde llamas la funcion "quita" imagino que estabas llamando "para"... me tome el atrevimiento de hacer algunas correcciones al codigo:

Código :

backbtn.addEventListener(MouseEvent.MOUSE_DOWN, retrocede) 
backbtn.addEventListener(MouseEvent.MOUSE_UP, para) 
function retrocede(evt:MouseEvent){ 
  this.addEventListener(Event.ENTER_FRAME, atras) 
} 
function atras(evt:Event){ 
   my_flvPlayback.playheadTime -= 5; 
} 
function para(){ 
  this.removeEventListener(Event.ENTER_FRAME, atras) 
}


pero aun asi...seguimos con problemas...cuando hago click en el boton, comienza a retorceder creando un loop interminable, aun cuando dejo de presionar el mouse....
Alguna idea?

Por oscarcangel

51 de clabLevel



 

2004

firefox
Citar            
MensajeEscrito el 14 May 2009 03:48 pm
Sip, eso, escribo de memoria y a veces mal y pronto. Como verás el code no tiene mucho misterio, en el mouse_up tiene que quitar el listener y la función atras se deja de ejecutar. Dale vueltas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 May 2009 05:17 pm
Voy a darle tantas vueltas como pueda...si llego a encontrar una solcuion la piblicare sin largas!

Por oscarcangel

51 de clabLevel



 

2004

firefox
Citar            
MensajeEscrito el 16 May 2009 09:20 pm
Despues de dos largos dias de darle vueltas al codigo, encontre que lo mejor era comenzar de cero (como muchas veces nos pasa) y me di a la tarea de generar mi codigo en ActionScript 2... la verdad fue mucho mas interesante de lo que pense... el fast forward y el rewind funcionan a las mil maravillas... la carga de la imagen al principio y al final del FLV como la carga del mismo a travez de flashvars funcionan perfectamente!!!!.... en conclusion, pude solucionar mi problema sin mas largas... aqui les envio un ejemplo de el resultado del player: [url=http://elnidodesign.com/clients/axs/flv-vars2.html][/url]

Espero les guste la aplicacion... cualquier cometario es aceptado :wink: :wink:

Por oscarcangel

51 de clabLevel



 

2004

firefox

 

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