Allegro 5 api
#include <allegro5/allegro_audio.h> ALLEGRO_AUDIO_STREAM *al_load_audio_stream_f(ALLEGRO_FILE* fp, const char *ident, size_t buffer_count, unsigned int samples)
Loads an audio file from ALLEGRO_FILE(3alleg5) stream as it is needed.
Unlike regular streams, the one returned by this function need not be fed by the user; the library will automatically read more of the file as it is needed. The stream will contain buffer_count buffers with samples samples.
The file type is determined by the passed \[aq]ident\[aq] parameter, which is a file name extension including the leading dot.
The audio stream will start in the playing state. It should be attached to a voice or mixer to generate any output. See ALLEGRO_AUDIO_STREAM(3alleg5) for more details.
Returns the stream on success, NULL on failure. On success the file should be considered owned by the audio stream, and will be closed when the audio stream is destroyed. On failure the file will be closed.
Note: the allegro_audio library does not support any audio file formats by default. You must use the allegro_acodec addon, or register your own format handler.
al_load_audio_stream(3alleg5), al_register_audio_stream_loader_f(3alleg5), al_init_acodec_addon(3alleg5)