Loads a WAV from a file path.
int SDL_LoadWAV(const char *path, SDL_AudioSpec * spec,
Uint8 ** audio_buf, Uint32 * audio_len);
path |
The file path of the WAV file to open. |
spec |
A pointer to an SDL_AudioSpec that will be set to the WAVE data's format details on successful return. |
audio_buf |
A pointer filled with the audio data, allocated by the function. |
audio_len |
A pointer filled with the length of the audio data buffer in bytes |
Returns This function, if successfully called, returns 0. audio_buf
will be filled with a pointer to an allocated buffer containing the audio data, and audio_len
is filled with the length of that audio buffer in bytes.
This function returns -1 if the .WAV file cannot be opened, uses an unknown data format, or is corrupt; call SDL_GetError() for more information.
When the application is done with the data returned in audio_buf
, it should call SDL_free() to dispose of it.
This is a convenience function that is effectively the same as:
"rb"), 1, spec, audio_buf, audio_len); SDL_LoadWAV_RW(SDL_RWFromFile(path,
Note that in SDL2, this was a preprocessor macro and not a real function.
It is safe to call this function from any thread.
This function is available since SDL 3.0.0.
SDL_AudioSpec wav_spec;
Uint32 wav_length;
Uint8 *wav_buffer;
/* Load the WAV */
if (SDL_LoadWAV("test.wav", &wav_spec, &wav_buffer, &wav_length) == NULL) {
"Could not open test.wav: %s\n", SDL_GetError());
fprintf(stderr, else {
} /* Do stuff with the WAV data, and then... */
SDL_free(wav_buffer); }
CategoryAPI, CategoryAudio