play_audio_stream
Creates a new audio stream and starts playing it.
Description
This function creates a new audio stream and starts playing it. The
length is the size of each transfer buffer in sample frames (not bytes),
where a sample frame is a single sample value for mono data or a pair of
interleaved sample values (left first) for stereo data. The length should
normally be (but doesn't have to be) a power of 2 somewhere around 1k in
size. Larger buffers are more efficient and require fewer updates, but
result in more latency between you providing the data and it actually
being played.
The `bits' parameter must be 8 or 16. `freq' is the sample rate of the
data in Hertz. The `vol' and `pan' values use the same 0-255 ranges as the
regular sample playing functions. The `stereo' parameter should be set to
1 for stereo streams, or 0 otherwise.
If you want to adjust the pitch, volume, or panning of a stream once it is
playing, you can use the regular voice_*() functions with stream->voice
as a parameter. The format of the sample data is described in the SAMPLE
entry of the "Structures and types defined by Allegro" chapter. The formula
to get the size of the buffers in bytes could be:
bytes = length * (bits / 8) * (stereo ? 2 : 1)
Example:
/* Create a 22KHz 8bit mono audio stream. */
stream = play_audio_stream(1024, 8, FALSE, 22050, 255, 128);
if (!stream)
abort_on_error("Error creating audio stream!\n");
This function returns a pointer to the audio stream or NULL if it could
not be created.
Related Discussions
The following threads each have code containing this keyword:
Note: You can click on the numbers to jump directly to the posts that reference this page.
Related Projects
The following projects include source code containing this keyword: