我正在尝试在我正在开发的游戏的背景下播放音乐。我第一次使用 SDL2 和 SDL-mixer。我自己编译了它们并将文件放在我的程序文件夹的根目录下(出于可移植性目的)。现在,当我运行游戏时,没有声音播放并且 Mix_GetError() 返回此错误:
"Mixer not built with MP3 support"
我正在尝试播放 MP3 文件,但是当我尝试使用 OGG 和其他格式进行初始化时,我得到了同样的错误。
这是功能,如果它完全相关的话。
int play_sound(void)
{
int mp3;
Mix_Music *music;
mp3 = MIX_INIT_MP3;
music = NULL;
if (mp3 != Mix_Init(mp3))
return (put_error(Mix_GetError()));
if (Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096) == -1)
return (-1);
music = Mix_LoadMUS("data/music.mp3");
Mix_PlayMusic(music, -1);
return (0);
}
我在那个特定问题上没有找到太多,但我认为问题来自我从源代码编译 SDL2 和 SDL-mixer。我一定忘记了什么,但我真的不知道......顺便说一句,我在 OSX 上(还没有真正习惯它)。
感谢大家的帮助!
编辑/我没有尝试过使用 WAV 文件。