Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Obtener información de un sonido con OpenAL

Iniciado por Georg, 11 de Enero de 2009, 11:15:41 PM

« anterior - próximo »

Georg

Hola, estoy haciendo un engine de sonido pero necesito obtener cierta información sobre el sonido que se reproduce actualmente.
Especificamente, necesito obtener la longitud total del sonido en milisegundos y la posición actual de reproducción ( por ejemplo: Reproducidos 1000 de 50000 milisegundos)
Gracias de antemano

AK47

La duracion del sonido lo puedes obtener con los datos de cuanto ocupa el buffer, cual es la frecuencia de los datos, su numero de bits y sus canales. Lo de por donde va la reproduccion en curso ya ni idea, supongo que habra alguna funciona para ello

H-K

#2
Para obtener la posición actual, mírate las propiedades AL_SEC_OFFSET, AL_BYTE_OFFSET y AL_SAMPLE_OFFSET (las puedes consultar mediante funciones alGetSource_). Según la resolución que quieras tener, te vendrá mejor una u otra. Aunque por lo que he visto, las posiciones sólo se actualizan cada 25 ms, así que no sé si tiene mucho sentido querer tener tanta precisión.

Otro detalle, así directamente ésto sólo vale para samples. Para streams tendrás que currarte alguna manera de llevar la cuenta del tiempo de reproducción "a mano".

Saludos!
"It's not who I am underneath, but what I do that defines me"

Prompt

Si haces streaming del archivo y doble buffering sabes el offset ya que eres tu quien alimenta el buffer de OpenAL directamente. Sino haz lo que dice H-K :)

Georg

#4
Gracias por responder, me han servidon las soluciones de AK47 y H-K. El AL_BYTE_OFFSET también me sirvió para ir a una posición determinada mediante alSourcei().






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.