#include #include static unsigned int wav_length; /* length of our sample */ static unsigned char* wav_buffer; /* buffer containing our audio file */ static SDL_AudioSpec wav_spec; static SDL_AudioDeviceID device_id = 0; static int cat_audio_playing = 0; void cat_stop_audio(void) { SDL_PauseAudioDevice(device_id, 1); SDL_CloseAudioDevice(device_id); SDL_FreeWAV(wav_buffer); cat_audio_playing = 0; /*SDL_Quit();*/ } void cat_play_wav(char* file) { if (cat_audio_playing) cat_stop_audio(); cat_audio_playing = 1; if (SDL_LoadWAV(file, &wav_spec, &wav_buffer, &wav_length) == NULL) { printf("file is null!!\n"); return; } device_id = SDL_OpenAudioDevice(NULL, 0, &wav_spec, NULL, 0); SDL_QueueAudio(device_id, wav_buffer, wav_length); SDL_PauseAudioDevice(device_id, 0); } int main(int argc, char** argv) { SDL_Init(SDL_INIT_EVERYTHING); cat_play_wav("etc/example.wav"); SDL_Delay(300); cat_stop_audio(); fgetc(stdin); return 0; }