Controlando el video en Flash
La ventaja de utilizar esta tecnología, es que nos permite escuchar y visualizar los archivos de audio y/o video mientras se van descargando en nuestros ordenadores, evitando así, la larga espera de tener nuestro archivo completo.
Ha pasado un año desde que publiqué el primer tutorial de FLV . A partir de eso he recibo varios mails preguntándome cosas al respecto, por lo que decidí hacer una ampliación del tema.
Es importante que para leer este nuevo tutorial, hayas pasado por el primer tutorial introductorio , así que manos al flash. Es preciso recordarte que el código que a continuación veremos sólo es aplicable a Macromedia Flash 2004 , y NO SE PUEDE USAR en versiones anteriores,
no insistir.
var conexion:NetConnection = new NetConnection();
conexion.connect(null);
var stream:NetStream = new NetStream(conexion);
mi_video.attachVideo(stream); stream.play("tu.flv"); //aseguramos 10 seg de reproduccion stream.setBufferTime(10); onEnterFrame = function () { bu_cargado.text = stream.bufferLength; bu_total.text = Math.round(stream.bytesTotal/1024)/1000+" mb";
};
//botones_-----------------------------------
seg.restrict=1-9// solo aceptamos numeros btn1.onPress = function() { stream.play("tu.flv"); }; btn1_1.onPress = function() { stream.close(); }; btn2.onPress = function() { stream.pause(); //obvio, para hacer pausa, ojo q es lo mismo para avanzar };
btn3.onPress = function() { stream.seek(0); // va al inicio (cero segundos) }; btn4.onPress = function() { stream.seek(seg.text); // va al segundo q nosotros escribamos }; //status stream.onStatus = function(infoObject:Object) { if (infoObject.code == "NetStream.Play.Stop") { trace("acabo"); } if (infoObject.code == "NetStream.Play.StreamNotFound") { trace("encontro error"); } };
Aquí lo único nuevo son las líneas de status, que nos permitirá tener un control dependiendo de lo que suceda con nuestro video FLV. Los siguientes eventos, envían una notificación que informan, sí ocurren ciertas actividades de NetStream (esto también está en la ayuda de flash).
| Propiedad Code | Propiedad Level |
|
NetStream.Buffer.Empty |
Status |
| No se reciben datos con la rapidez suficiente como para que el búfer se llene. El flujo de datos se interrumpe hasta que el búfer vuelve a estar lleno; en ese momento se envía un mensaje NetStream.Buffer.Full y el flujo se reanuda.
|
|
|
NetStream.Buffer.Full |
Status |
| El búfer está lleno y el flujo va a iniciarse.
|
|
|
NetStream.Play.Start |
Status |
| Ha comenzado la reproducción.
|
|
|
NetStream.Play.Stop |
Status |
| Se ha detenido la reproducción.
|
|
|
NetStream.Play.StreamNotFound |
Error |
| No se ha podido encontrar el archivo FLV que se ha pasado al método play(). |
En español esto sería así:
Cuando el video acabo el estado del video será: NetStream.Play.Stop y en este caso estamos haciendo un trace con un mensaje, pero quizás lo optimo sería mandarlo a un frame específico o reiniciar el video. Del mismo modo NetStream.Play.StreamNotFound nos indica que existió algún problema con el video y devuelve un mensaje de error.
Elegir varios videos
Ahora hagamos algo mejor, usando nuestro tutorial de combobox haremos un visor de varios videos, lo único es agregar estas líneas al final de nuestro código y un componente combobox al archivo: .fla.
mi_combo.addItem("video_1", 0);
mi_combo.addItem("video_2", 1);
mi_combo.addItem("video_3", 2);
alSeleccionar = new Object();
alSeleccionar.change = function(evento) {
trace("Has seleccionado "+evento.target.value);
switch (evento.target.value) {
case 0 :stream.play("tu.flv");
break;
case 1 :stream.play("yo.flv");
break;
case 2 :stream.play("el.flv");
break;
}
};
//Listeners para cuando seleccionamos alguna opcion
mi_combo.addEventListener("change", alSeleccionar);
Prácticamente lo que hacemos es agregar a nuestro combobox los nombres que aparecerán en nuestro componente y luego llamarlo con un Listener.
