Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2007, 04:22
elmaravillas
 
Fecha de Ingreso: marzo-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
audio streaming - ancho de banda

Hola a todos. El motivo de mi mensaje no es otro que solicitar algo de ayuda. Les cuento. Somos un grupo de tres con una web hecha entera en flash. Nuestra especialidad es el mundo del audio y por ello necesitamos tener mucha música en nuestra base de datos. Esos archivos se cargan de manera externa. serán unos 30 y cada uno de ellos es llamado desde su propia escena y con propio código (este código es común a las 30 canciones). La historia es que cuando haces la prueba en el .fla no tienes problema pero si le haces una simulación de descarga,(por ejemplo DSL ,da igual la que pongas, tarde o temprano ocurrirá)comienza a hacer el streaming, entonces seleccionas otra cancion "B" porque lo poco que oyes no te gusta , y hace streaming y suena, pero el tema anterior "A" no parará hasta que no se termine la descarga. No suena porque la cancion B tiene un stopallsounds.
Y este es el problema, cada vez va tardando mas y mas en descargar un archivo hasta que consume todo el ancho de banda y practicamente va parado entrecortándose el audio todo el rato. Eso si, si esperas luego un tiempo, descarga todo lo que tienen pendiente y entonces ya va bien. Posibles soluciones:
A) Esperar a que se haya descargado el tema completamente para seleccionar otra canción. Gano en que no se traba , pero según que tema es un poco inviable hacer esperar. No me convence.
B)Crear una descarga streaming para reproducir a
partir del ¿20%?, con ello nunca se entrecortaria, pero el problema del ancho de banda sigue presente.

Por si no ha quedado claro, lo que necesito en pocas palabras es un sistema que cuando yo seleccione una cancion B el streaming de la A (ya reproduciendose) cese automaticamente. Y este es mi código.

stop();
function cargar_mp3(mp3) {
cancion = new Sound();
cancion.loadSound(mp3, true);
this.onEnterFrame = function() {
BytesLoaded = cancion.getBytesLoaded();
BytesTotal = cancion.getBytesTotal();
porcentaje = Math.floor(BytesLoaded/BytesTotal*100);
if (!isNaN(porcentaje)) {
estado.text = porcentaje+"% cargado.";
}
};
cancion.onLoad = function() {
delete onEnterFrame;
estado.text = "carga completa";
};
}
cargar_mp3("nombre de la canción.mp3");
b_pause.onRelease = function() {
ultimaPosicion = Math.round(cancion.position/1000);
cancion.stop();
};
b_stop.onRelease = function() {
ultimaPosicion = 0;
cancion.stop();
};
b_play.onRelease = function() {
if (ultimaPosicion == 0) {
cancion.start();
} else {
cancion.start(ultimaPosicion);
}
};


Un saludo y muchas gracias de antemano.