Comunidad de diseño web y desarrollo en internet online

Problema con "duration" de un "Sound"

Citar            
MensajeEscrito el 22 Jul 2008 02:19 pm
Hola a todos, tengo el siguiente problema. Quiero utilizar la propiedad duration que me da la duración de un sonido para calcular el porcentaje reproducido según la propiedad position.

El problema es que no se ejecuta el onLoad cuando llamo a loadSound a no ser que este se haya cargado completamente (porque lo tenga en caché o haga mis pruebas en local)

Resulta que si lo va descargando, el duration lo va recalculando a medida que hace dicha descarga y no sé a qué es debido esto. ¿Tiene que ver con las características del mp3? En principio es un mp3 con un bitrate fijo y 320kps.
Supongo que aunque esté en streaming el duration se puede obtener, cierto?

Simplemente hago

Código :

sound.onLoad = function(success:Boolean)
{
   if (success)
   {
      trace("DUR " + this.duration);
   }
   else
   {
      trace("no load");
   }
}

sound.loadSound(urlaudio, true); 

[/code]

Por aitorlape

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Jul 2008 02:32 pm
Prueba usando el callback onID3 (está en la ayuda), suele traer la duración

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2008 03:03 pm
He probado lo siguiente pero me aparece como si estuvise codificado y no he sabido a que propiedad llamar.

Código :

sound.onID3 = function()
{
   trace("onID3 called at "+getTimer()+" ms.");
   for (var prop in this.id3)
   {
      trace(this.id3[prop]);
   }
}

Por aitorlape

23 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Jul 2008 06:01 pm
Puedes acceder a ID3 solamente si contiene caracteres UTF-8, lamentablemente flash no puede acceder a estas propiedades si utiliza otro tipo de caracteres.

Para saber el tiempo de duración por Sound.duration debes esperar a que cargue el sonido, porque si no no lo puede saber, por lo que te recomiendo que hagas un preloader para el sonido donde te indique cuanto se ha cargado de este sonido y cuando se termine de cargar entonces calculas su duración.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 22 Jul 2008 06:39 pm
Muchas gracias por tu respuesta, lamentablemente si he de esperar a que se cargue el sonido entero, la función de streaming pierde su sentido y necesitaría esa propiedad para hacer que la barra de reproducción muestre el porcentaje transcurrido.
Supongo que lo ideal es que cuando suba el archivo al servidor almacene en la base de datos esta información.
Por las respuestas creo que es la única manera si no puedo obtener "duration" antes de que cargue el sonido entero.

Gracias

Por aitorlape

23 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.