Comunidad de diseño web y desarrollo en internet online

Player de video y audio en Actionscript 3 ZVideo y ZAudio

La mayoría de players de vídeo y audio existentes vienen con su propio skin que puede ser más o menos fácil de modificar pero nunca se adapta 100% a las necesidades del proyecto. ZVideo y ZAudio no tienen parte gráfica (botones), solamente proveen una API común para el manejo de audio y vídeo. En este tip mostraré cómo usarlos.

Código :

var player:ZVideo = new ZVideo();
player.load(“your_video.flv”);
addChild(player);


En 3 líneas de código se crea el objeto vídeo, se carga el flv y se añade a la DisplayList. Sencillo ¿no? Aun así lo normal es que necesitemos más control, así que vamos a escuchar los eventos:

Código :

var player:ZVideo = new ZVideo();
player.addEventListener(evLoadProgress.LOAD_PROGRESS,loadProgress);
player.addEventListener(evLoadFinished.LOAD_FINISHED,loadFinished);
player.addEventListener(evPlayerFinished.PLAYER_FINISHED,playerFinished);
player.addEventListener(evOnMetaData.META_DATA,metaData);
player.addEventListener(IOErrorEvent.IO_ERROR,ioError);
player.load(flvPath,true);


  • ZVideo tiene internamente un objeto Timer para controlar el estado de la precarga, así que sólo hay que suscribirse a LOAD_PROGRESS para mostrarla.
  • LOAD_FINISHED se lanza cuando la carga ha terminado.
  • PLAYER_FINISHED se lanza cuando el vídeo ha llegado a su fin.
  • META_DATA se lanza cuando el evento onMetaData es recibido. IMPORTANTE: El objeto MetaData no sigue ningún estándar, al contrario de lo que ocurre con MP3, desgraciadamente depende del software que se haya utilizado para crear el objeto FLV. Eso quiere decir que un vídeo de Youtube puede venir con cierta información y otro de por ejemplo Vimeo con otra completamente distinta.
  • IO_ERROR se lanza cuando el vídeo no se ha podido cargar (ver este post de ASNativos para más info).


Controlar el estado del player es bastante sencillo usando los métodos para ello: play, pause, toggle, reset, getVolume, getDuration, getTime, isPlaying, etc. Se puede ver un ejemplo completo de uso aquí ("diseño horrendo, pero esa es la idea", Freddie dixit) y el código fuente aquí.

Como he comentado al principio, ambos players ofrecen la misma API ya que implementan la misma interface (iPlayer) lo que quiere decir que hay menos métodos y llamadas que aprender. La idea es que sean sencillos de usar (KISS) y no hagan más de lo que sea necesario (YAGNI) así que si alguien necesita algo más completo hay proyectos similares como Pyro.

ZVideo y ZAudio forman parte de ZCode así que son código abierto y se pueden modificar/extender según las necesidades del proyecto. Podéis bajar el código fuente desde la página de Google Code (bajad sólo la parte de AS3 a no ser que os interese la parte de AS2 y PHP).

Se aceptan ideas, comentarios, insultos, parches... lo que sea : )

Espero que sea útil!

Juan

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate