Comunidad de diseño web y desarrollo en internet online

Preload de varios archivos (video)

Citar            
MensajeEscrito el 20 Ene 2011 08:40 pm
Hola! Necesito si alguien puede orientarme.

Estoy haciendo en AS2 un website en el que en distintas escenas carga videos, según lo seleccionado por el usuario.
El tema es que he comprimido al máximo los videos y aún así debo esperar entre video y video que cargue el siguiente video, por el peso de los mismos.

Lo que quisiera hacer es precargar los videos al inicio del sitio web, en el momento de hacer preload de todo el sitio.
Son varios archivos .mp4 que se reproducirá cada uno en una escena diferente, con el componente FLVPlayback.

¿esto es posible?

Gracias de antemano!

Ricardo

Por jricardoar

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2011 02:16 pm
Si metes toda la precarga al principio probablemente espantes usuarios con la espera.
Quizás puedas precargarlos en background (básicamente se hac un play/pause para que se inicia la descarga) pero te recomiendo hacerlo en cola, no todos juntos porque compiten por el mismo anchod e banda

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Ene 2011 05:10 pm
Gracias Solisarg!
Si, tenía en mente no poner todos, sino que iba a hacer precarga únicamente de los que se complicaba un poco la espera...
Con respecto a la carga, sugerís que los cargue y los ponga en pausa inmediatamente?
Se me ocurre esto:

- Cargarlos como vos decís, poniéndoles pausa, en el momento del preload del sitio
- Añadir un listener para que cuando termine de cargar los vids comience el sitio.

¿La solución te parece que sería así? :

Código ActionScript :

//primero la carga del video, según http://bit.ly/eFL7Bu
var conexion:NetConnection = new NetConnection();
conexion.connect(null);
var stream:NetStream = new NetStream(conexion);
mi_video.attachVideo(stream);
stream.play("video1.mp4"); //acá si le pongo steam.pause cumpliría la instrucción?
//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";
};


y después el Listener

Código ActionScript :

mi_video.addEventListener("complete",this.complete);
function complete(evt:Object):Void {
gotoAndPlay("comienzoSitio");
}


El listener, ya se me ocurre que no funcionará, porque toma como referencia la reproducción completa del vid. ¿tenés idea del remplazo para la función?
o simplemente con el

Código ActionScript :

 stream.setBufferTime 
modifico los segundos para que cargue la totalidad del video?

Gracias por la ayuda!

Por jricardoar

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2011 06:05 pm
SAi se trata solo de precarga te sobran cosas, lo básico es esto:

Código ActionScript :

var conexion:NetConnection = new NetConnection(); 
conexion.connect(null); 
var stream:NetStream = new NetStream(conexion); 
stream.play("video1.mp4"); //acá si le pongo steam.pause cumpliría la instrucción? 
stream.pause();


Ahí ya lo tienes cargando, asociarlo al objeto video no es necesario aún, lo que tienes que hacer es chequear cuanto lleva cargado con stream.bytesTotal y stream.bytesLoaded, debes ir creando tantos streams como videos tengas, y cuando termina uno empezar la precarga del otro. En el punto que llegues a la reproducción, asocias el stream al objeto video (idealmente uno solo, aunque si armas tu sitio por timeline supongo que tendrás un montón tirados por todos lados) y lo muestras.

Entonces tu pool de carga debería funcionar así:

- Tienes un listado de videos a cargar
- Lanzas la carga del primero y seteas el onEnterFrame que la chequea
- Cuando terminas la precarga de uno sigues con el siguiente, etc

Esto no te asegura tener el video que necesites cuando el usuario quiera verlo, cargalo en el orden que tenga mas posibilidades de ser visto, no bloquees la navegación hasta que se precarguen porque llevará mucho tiempo.
Dado que una vez que inicias la descarga no puedes detenerla, usar bufferTime para precargar solo 10 segundos no tiene efecto

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.