¿Alguna forma de pausar el tráfico de red de la clase NetStream en ActionScript 3?

Aquí está mi caso de uso:

Le presento a un usuario un conjunto de pequeños videos de reproducción. Cuando el usuario hace clic en uno de los videos pequeños, pause todos los pequeños y cargo una versión de tasa de bits más alta del video en el que se hizo clic.

Todo funciona bien, excepto que es muy lento y algunos diagnósticos de red sugieren que el problema es que todos los videos pequeños continúan cargándose a pesar de que he llamado a pause () en sus netstreams.

Para reformular el código:

Supongamos que tengo:

var nc:NetConnection = new NetConnection();
nc.connect (null);   

var ns1:NetStream = new NetStream(nc);        

var vid1:Video = new Video(WIDTH, HEIGHT);
vid1.attachNetStream(ns1);
ns1.play("video1.mp4");
stage.addChild(vid1);

pasan unos segundos ... vid1 todavía se está cargando, y lo que quiero hacer es pausar tanto la transmisión de video de vid1 como el tráfico de red de carga de vid1 para que el siguiente código pueda ejecutarse lo más rápido posible

ns1.pause();

var ns2:NetStream = new NetStream(nc);
var vid2:Video = new Video(WIDTH, HEIGHT);
vid2.attachNetStream(ns2);
ns2.play("video2.mp4");
stage.addChild(vid2);

... y luego, un tiempo después, el usuario descartó vid2, así que reanudo la reproducción de vid1

ns1.resume();

¿Hay alguna forma de decirle a ns1 que deje de leer su socket? Si llamo ns1.close(), entonces no puedo reanudar la reproducción con ns1.resume().

Si necesito usar un protocolo de transmisión, ¿qué tan pesado es el apretón de manos al cargar todos los videos pequeños? Estoy tratando de cargar rápidamente muchos videos de baja tasa de bits (50 kbps).

¡Gracias!

preguntado el 09 de enero de 11 a las 07:01

1 Respuestas

El problema es que las películas continúan cargándose aunque no se estén reproduciendo. Puede verlo fácilmente en YouTube: simplemente haga clic en un video y luego presione pausa; la barra de progreso continúa creciendo.

Creo que no hay otra forma de detener esto que cerrar cada NetStream cuando está en pausa. Sin embargo, si acepta un ligero retraso y / o un salto al siguiente fotograma clave adyacente, puede continuar la película en la última posición: el objeto de video al que está asignada la transmisión debe mostrar el último fotograma hasta que haya contenido nuevo, o video.clear() se llama, y ​​puede almacenar la última posición de reproducción utilizando ns.time y vuelva a él después de volver a conectarse usando ns.seek ().

Respondido el 09 de enero de 11 a las 12:01

Eres bienvenido. Podrías aceptar esta respuesta para pagarme ...;) - Weltraumpirat

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.