al_create_audio_stream(3alleg5) | al_create_audio_stream(3alleg5) |
al_create_audio_stream - Allegro 5 API
#include <allegro5/allegro_audio.h> ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count, unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)
Creates an ALLEGRO_AUDIO_STREAM(3alleg5). The stream will be set to play by default. It will feed audio data from a buffer, which is split into a number of fragments.
Parameters:
A sample that is referred to by the frag_samples parameter refers to a sequence channel intensities. E.g. if you're making a stereo stream with the frag_samples set to 4, then the layout of the data in the fragment will be:
LRLRLRLR
Where L and R are the intensities for the left and right channels respectively. A single sample, then, refers to the LR pair in this example.
The choice of fragment_count, frag_samples and freq directly influences the audio delay. The delay in seconds can be expressed as:
delay = fragment_count * frag_samples / freq
This is only the delay due to Allegro's streaming, there may be additional delay caused by sound drivers and/or hardware.
Note: If you know the fragment size in bytes, you can get the size in samples like this:
sample_size = al_get_channel_count(chan_conf) * al_get_audio_depth_size(depth); samples = bytes_per_fragment / sample_size;
The size of the complete buffer is:
buffer_size = bytes_per_fragment * fragment_count
Note: Unlike many Allegro objects, audio streams are not implicitly destroyed when Allegro is shut down. You must destroy them manually with al_destroy_audio_stream(3alleg5) before the audio system is shut down.
Allegro reference manual |