Los desarrolladores Flash llevamos desde el 2002, la asidua tarea de trabajar con estos formatos. Por eso, en la parte cliente, se hace necesario el uso de un conjunto de clases que manejen esta labor, y que nos permita tener vídeo para rato sin morir en el intento cada vez que hay que aplicarlo a un proyecto.

Gracias a todos, ( y espero participar en ello pronto) cada día tenemos más proyectos hacia este área en la comunidad de desarrollo libre o de pago, y ya existen soluciones para la creación de players. Incluso existen players de licencia libre que cubren varias funcionalidades, de hecho hay un sano mercado en torno a los players, copado actualmente por JW FLV Media Player, un player bastante completo.

Pero si estamos empeñados en añadir las clases a nuestro repositorio reutilizables para todos los proyectos de tu empresa,  la tarea de crear un player crece en dos sentidos: el primero crear los componentes de interacción, que si bien algunos ya puedes tenerlos creados o reusarlos, y segundo, conocer las diferentes particularidades de la api de gestión de vídeo en flash para aplicar la funcionalidad a los controles visuales, que dependerá del tipo de vídeo y el total de los que vamos a meter.

En realidad, se trata de un trabajo de semanas partiendo desde cero. Son por sí mismo un subproyecto, o al menos un buen sprint en un desarrollo. A nivel de interacción, los players se deben tratar con cariño, puesto que demandan funcionalidades avanzadas de los usuarios acostumbrados a players de gran consumo, como youtube. Se debe trabajar bien con el seeker para dotarle del mayor número de funcionalidades posible, puesto que cuanto más bueno o largo es el vídeo, más vamos a utilizar este componente.

Para empezar, no está mal echar un vistazo a otros players famosos en Internet.  Debemos poner interés en añadir funcionalidades tales como añadir alias de teclado como la pausa para el espacio. También es interesante el retroceso del vídeo por click de la barra,  o avance en caso de que dispongamos de servidor rtmp o tecnología que lo permita. La visualización del vídeo mientras se arrastra la barra será motivo de otro post, y no deberíamos olvidar.

Este desarrollo es buena práctica para aprender la creación y despachado de eventos personalizados porque realmente te puedes hinchar a usar y crear eventos. Recomiendo separar para ello el código en una clase Player que se encargue de manipular el stream de red y enviar los eventos de usuario necesarios, y un conjunto de clases para el manejo de la interfaz, tales como sliders, buttons, loaders y seekers. Un patrón MVC también es interesante para montar toda la interacción entre clases y por si piden cambiar el skin para adaptar a otros proyectos e incluso en el mismo proyecto.

La parte más aburrida de esta tarea, la podemos simplificar con el uso de la clase Pyro Player que ha creado Turbulent.

[as]

var pyroInstance:Pyro = new Pyro(320, 240);

addChild(pyroInstance);

pyroInstance.play(“http://myvideosite.com/videos/gratton.flv”);

[/as]

Tras un uso en varios proyectos, puedo afirmar que simplifica bastante la tarea, aunque el diálogo entre esta clase y los controles no te lo quita nadie en ningún proyecto a menos que obligues a tus diseñadores  a que usen los mismos controles en todos los players, o inviertas más tiempo todavía en parametrizar esta opción en tu triada.

Tengo que dar gracias a mi colega Diego por descubrirme esta clase. Como agradecimiento hacia este intercambio de conocimiento tan saludable, os recomiendo a todos también MySimpleMp3, una clase similar para reproducir mp3´s.
[as]
audio.url = “http://mydomain.com/music.mp3”;
audio.play();
audio.pause();
audio.stop();
audio.volume = 0..1;
audio.panning = -1..1;
[/as]

Los que habéis llegado hasta aquí y os interese este post desde la perspectiva de la publicidad, os remito a esta entrada en mi otro blog.

Tagged on:                         

Leave a Reply

Your email address will not be published. Required fields are marked *