參考資訊:
https://www.libsdl.org/release/SDL-1.2.15/docs/html/index.html
main.c
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <SDL.h> #include <SDL_mixer.h> static int complete = 0; static void music_play_complete(void) { complete = 1; } int main(int argc, char **argv) { SDL_Init(SDL_INIT_AUDIO); Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096); Mix_Music *music = Mix_LoadMUS("main.wav"); Mix_HookMusicFinished(music_play_complete); Mix_PlayMusic(music, 1); printf("waiting for complete...\n"); while (complete == 0) { usleep(100000); } printf("complete\n"); Mix_HaltMusic(); Mix_FreeMusic(music); Mix_CloseAudio(); SDL_Quit(); return 0; }
P.S. 支援WAVE, MOD, MIDI, OGG, MP3, FLAC
編譯、執行
$ gcc main.c -o main -lSDL -lSDL_mixer -I/usr/include/SDL $ ./main waiting for complete... complete