SDL_mixer.h

Función Mix_LoadWAV_RW

Sintaxis

Mix_Chunk * Mix_LoadWAV_RW(SDL_RWops *src, int freesrc);

Descripción

Carga un formato de audio compatible en un chunk.

Parámetros

src
Un SDL_RWops del que se leerán los datos.
freesrc
Distinto de cero para cerrar/liberar el SDL_RWops antes de volver, cero para dejarlo abierto.

Valor de retorno

Devuelve un nuevo chunk, o NULL en caso de error.

Observaciones

SDL_mixer tiene dos estructuras de datos separadas para los datos de audio. Una se denomina "chunk" (trozo), y está pensada para ser un archivo completamente decodificado en memoria por adelantado, y la otra se denomina "music" (música), que es un archivo pensado para ser decodificado bajo demanda. Al principio, los formatos sencillos, como los archivos WAV sin comprimir, eran "chunks" y los comprimidos, como los MP3, eran "música", y se transmitía una cosa para la música de un juego y se hacían efectos de sonido repetitivos con los "chunks".

En los tiempos modernos, esto ya no se divide por formatos, y la mayoría son intercambiables, así que la cuestión es qué cree la aplicación que merece la pena predecodificar o no. Los chunks pueden ocupar más memoria, pero una vez cargados no será necesario descodificarlos de nuevo, mientras que la música siempre hay que descodificarla sobre la marcha. Además, y esto es crucial, hay tantos canales para los chunks como la aplicación pueda asignar, pero SDL_mixer sólo ofrece un único canal de "música".

Si freesrc es distinto de cero, los RWops se cerrarán antes de volver, tanto si esta función tiene éxito como si no. En cualquier caso, SDL_mixer lee todo lo que necesita de los RWops durante esta llamada.

Hay una función separada (una macro, antes de SDL_mixer 2.6.0) para leer ficheros del disco sin tener que tratar con SDL_RWops: Mix_LoadWAV("filename.wav") llamará a esta función y gestionará esos detalles.

Cuando se termine con un chunk, la aplicación debe deshacerse de él con una llamada a Mix_FreeChunk().