#include <SDL.h>
#include <SDL_mixer.h>
//
//Code irrelevant to the situation
//
//Code irrelevant to the situation
//
void musicFinished() {
int musicPlaying = 0;
}
int main(int argc, char *argv[]) {
// Initialize SDL's subsystems
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_AUDIO) < 0)
{
fprintf(stderr, "Unable to initialize SDL: %s\n", SDL_GetError());
exit(1);
}
int audio_rate = 44100;
Uint16 audio_format = AUDIO_S16SYS;
int audio_channel = 1;
int audio_buffer = 2048;
if (Mix_OpenAudio(audio_rate, audio_format, audio_channel, audio_buffer) != 0) {
fprintf(stderr, "Unable to initialize audio: %s\n", Mix_GetError());
exit(1);
}
Mix_Music *music;
music = Mix_LoadMUS("test3.mp3");
if (music == NULL) {
// This is where the error occurs.
fprintf(stderr, "Unable to load mp3 file: %s\n", Mix_GetError());
exit(1);
}
if (Mix_PlayMusic(music, 0) == -1)
{
fprintf(stderr, "Unable to play mp3 file: %s\n", Mix_GetError());
exit(1);
}
int musicPlaying = 1;
Mix_HookMusicFinished(musicFinished);
while (musicPlaying) {
// do nothing
SDL_Delay(2500);
}
musicFinished();
Mix_HaltMusic();
Mix_FreeMusic(music);
Mix_CloseAudio();
atexit(SDL_Quit);
return 0;
}
相关文章: