參考資訊:
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