AlBufferData

void alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq): se usa para cargar el sonido dentro de un buffer.

buffer: es un entero que almacena un número que identifica al buffer enel que se almacena el sonido. Para crear el buffer se usa alGenBuffers

format: tiene que ver con la calidad del sonido y de si es mono o esterio. Aunque existen calidades de audio mayores que las que soporta openAl, esas no  son oibles para el ser humano y sólo son útiles para evitar perdidas cuando editamos la cancion, sonido... ¿como saber de que tipo es el sonido? Al cargar el archivo de audio debería venir indicado. Los tipos pueden ser: data: es un puntero a adonde esta el audio cargado. El en el que se debería encontrar el audio se llama PCM, y es el mismo que se usa en los CDs.
 * AL_FORMAT_MONO8:
 * AL_FORMAT_MONO16
 * AL_FORMAT_STEREO8
 * AL_FORMAT_STEREO16

size: es el tamaño de data, lo que pasamos en el anterir parametro, expresado en bytes. Se necesita ese dato ya que sino no habria manera de saber el tamaño que tine data, que es en realidad no otra cosa que un array unideimencional (normal).

freq: es la frecuencia del audio, tambien debería venir especiaficado por la fucnión con la que cargamos el sonido, canción...

Tipos de errores que puede generar
Los errores se pueden solicitar con alGetError. Los que pude generar la función son:


 * AL_OUT_OF_MEMORY: no hay suficiente memoria para generar el buffer
 * AL_INVALID_VALUE: el tamaño no es valido, el buffer ya está en uso, o data apunta a NULL (0)
 * AL_INVALID_ENUM: el formato especificado no existe

Ejemplo
//para compilarlo en linux: gcc nombre_del_fichero.c -lopenal //comprobar que las librerias de openal esten instalados int main { unsigned int buffer; int size; int freq; void *data;//void indica que el puntero puede ser de cualquier tipo alGenBuffers(1,&buffer);//creamos el buffer //cargamos el sonido, por ejemplo con alutLoadWavFile //la función con la que cargamos de algún modo nos debe dar los datos //que tenemos que asignar a size, freq, data void alBufferData(buffer, AL_FORAMT_MONO16, data, size, freq) //Aqui habría que poner el resto del código: //1. asignar el buffer a una fuente de sonido //2. asignar otras propiedades a la fuente //2. reproducir el sonido return 0; }
 * 1) include 
 * 2) include 