This function prepares a buffer queue for audio. You pass data format (only buffer_u8 or buffer_s16 are currently supported), the sample rate (which can be between 1000hz and 48000hz), and the channels that the audio requires from one of the constants listed below:
Constant Description audio_mono Mono (single channel) audio. audio_stereo Stereo (dual channel) audio. audio_3D 3D (5.1) audio.
Note that you should free up any audio queues created with this function when no longer required to prevent memory leaks using the function audio_free_play_queue().
This function will trigger an Audio Playback Asynchronous Event when the queue has reached the end, and in this event a special ds_map will be created in the variable async_load with the following key/value pairs:
- "queue_id" - the queue that has finished playing data
- "buffer_id" - the buffer that is no longer being played from
- "queue_shutdown" - this is set to 0 during normal playback and 1 when the event is received because audio_free_play_queue has been called. When this is set to 1, you don't want to queue up any further data.
audio_create_play_queue(queueFormat, queueRate, queueChannels);
|queueFormat||The format of the buffer data to use (buffer_u8 or buffer_s16).|
|queueRate||The sample rate of the data in the buffer queue.|
|queueChannels||The channels to use from one of the constants listed below.|
audio_queue = audio_create_play_queue(buffer_s16, 11052, audio_mono);
The above code creates a new audio queue and assigns its index to a variable for future reference.