Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dudas Sobre Openal

Iniciado por DraKKaR, 07 de Noviembre de 2003, 09:15:31 PM

« anterior - próximo »

DraKKaR

 Holas, seré escueto:

Imaginad ke tengo un código ke me carga y reproduce perfectamente un wav (usando la función alutLoadWAVFile para cargarlo). Omitiré todo ese código para no hacer el post pesado.

Ahora quiero eliminar la línea del alutLoadWAVFile y meter en el buffer datos aleatorios, a ver como los reproduce. Lo hago eliminando la linea del alutLoadWAVFile y sustituyéndolo por esto:


ALenum format;
ALsizei freq;
ALboolean loo;
char data[512];
for (int i=0; i<512; i++)
data[i]=i%256;
result=512;
freq=44800;
format=AL_FORMAT_MONO16;
if (data==NULL)
{
ERROR_STUFF(ERROR_FILENOTFOUND,file);
return false;
}


Y a continuación hago el mismo alBufferData ke hago cuando uso la función aluLoadWAV...


alBufferData(auxid,format,data,result,freq);


El problema es que cuando  hago esto, al ejecutar alSourcePlay se me cuelga el programa (nunca sale de la función) sin darme errores en ninguna de las llamadas a OpenAL.

¿Alguien peude decirme algo? (Aunke sea "vete al pedo")



DraKKaR

 Vale... olvidad el post anterior! fue una gilipollez mia.. todo claro!

Pero ahora tengo otra duda más inquietante.

Actualmente uso ficheros WAV para reproducir los efectos del juego (disparos, motores...), pero resulta que ahora quiero poder cargar pqeueños OGG para reproducir esos efectos.

Para ello, simplemente he creado una función clon a la alutLoadWAVFile() que incluso devuelven exactamente los mismos parámetros, la única diferencia entre ambas es que alutLoadWAVFile() devuelve un buffer con el WAV descomprimido en PCM y la función que he creado devuelve el OGG descomprimido, tb en formato PCM.

En teoría simplemente intercambiando la función alutLoadWAVFile() por la que yo he creado que me cargue el OGG todo debería funcionar bien. Y así es en parte: el OGG se carga y se reproduce... ¡pero no se le aplica nungún cambio en la ganancia ni en el volumen ni en el tono al variar la distancia de la fuente de sonido al escuchador!. Y eso que se ejecutan las mismas funcinoes openal tanto cargando WAV que cargando OGGs.

Eso es lo que me desconcierta, ya que lo único que he cambiado es la función alutLoadWAVFile() por la mia. Ambas devuelven exactamente los mismos parametros, salvo que en el buffer que devuelve está, o bien el WAV o bien el OGG.

A ver si alguien peude echarme un cable! ¿No hay nadie que haya conseguido reproducir efectos de sonido desde un OGG y le funcione la atenuación del sonido?






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.