DRAFT |
SDL_MixAudio
This function is a legacy means of mixing audio. New programs might want to use SDL_MixAudioFormat() instead.
Syntax
void SDL_MixAudio(Uint8* dst,
const Uint8* src,
Uint32 len,
int volume)
Function Parameters
dst |
the destination for the mixed audio |
src |
the source audio buffer to be mixed |
len |
defines the length of the audio buffer in bytes |
volume |
ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME for full audio volume |
Code Examples
static Uint8 *audio_chunk;
static Uint32 audio_len;
static Uint8 *audio_pos;
/* The audio function callback takes the following parameters:
stream: A pointer to the audio buffer to be filled
len: The length (in bytes) of the audio buffer
*/
void fill_audio(void *udata, Uint8 *stream, int len)
{
/* Only play if we have data left */
if ( audio_len == 0 )
return;
/* Empty any old data in the buffer */
SDL_memset(stream, 0, len);
/* Mix as much data as possible */
len = ( len > audio_len ? audio_len : len );
SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME);
audio_pos += len;
audio_len -= len;
}
/* Load the audio data ... */
;;;;;
audio_pos = audio_chunk;
/* Let the callback function play the audio chunk */
SDL_PauseAudio(0);
/* Do some processing */
;;;;;
/* Wait for sound to complete */
while ( audio_len > 0 ) {
SDL_Delay(100); /* Sleep 1/10 second */
}
SDL_CloseAudio();
Remarks
This function is equivalent to calling
SDL_MixAudioFormat(dst, src, format, len, volume);
where format is the obtained format of the audio device from the legacy SDL_OpenAudio() function.
