Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/11/2005, 12:14
ricardoxantos
 
Fecha de Ingreso: abril-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
El email es [email protected]

Pongo un codigo de ejemplo de lo que estoy aciendo para ver si alguien me recomienda algo. el loadSound es "streaming" por eso el segundo parametro es "true"

Código:
var i1:Number = 0;
var i2:Number = 0;
var sound:Sound = new Sound();

/**
 * Funcion que se encarga de dar informacion de 
 * que porcentaje del mp3 ha subido.
 * Solo incluyo lo necesario como ejemplo.
 */
function Subidos(s:Sound):Void {
    var porcientoSubido:Number = 100 * s.getBytesLoaded() / s.getBytesTotal();
}

/**
 * Funcion que se encarga de dar informacion de que 
 * porcentaje del mp3 se ha tocado.
 * Esta funciona si el mp3 ha sido subido en su totalidad
 * pero no si el mismo aun no ha subido completamente.
 */
function Tocados(s:Sound):Void {
    // Aqui esta el problema.
    // duration se refiere a los milisegundos bajados
    // y no a los totales. Como consigo el tiempo total?
    var porcientoTocado:Number = 100 * s.position / s.duration;
}

/**
 * Funcion encargada de subir una cancion.
 */
function SubirCancion(path_:String):Void {
    sound.loadSound(path_, true);   // Subir sonido streaming
    clearInterval(i1);
    clearInterval(i2);
    i1 = setInterval(Subidos, 100, sound);
    
    sound.onLoad = function(exito:Boolean) {
        if(!exito) {
            // Aqui me encargo de dar un mensaje de error, etc.
        }
        clearInterval(i1);
    }
    
    sound.onSoundComplete = function() {
        clearInterval(i1);
    }
}

/**
 * Esta funcion es llamada por el boton de tocar.
 * Es posible que sea llamada antes de que el mp3 halla
 * sido subido por completo.
 */
function TocarCancion():Void {
    s.start();
    i2 = setInterval(Tocados, 100, sound);
}

/**
 * Esta funcion es llamada por el boton de parar.
 * Es posible que sea llamada antes de que el mp3 halla
 * sido subido por completo.
 */
function PararCancion():Void {
    clearInterval(i2);
    s.stop();
}