SDL Mix_LoadMUS未加载.mp3

时间:2018-05-16 22:44:28

标签: c++ sdl mp3 sdl-mixer

所以显然我一直在尝试使用SDL_mixer加载.mp3。但是,这不起作用,而不是libsdl wiki:SDL_mixer Mix_LoadMUS

我希望它可以正常工作,但在加载和播放文件时,我的控制台应用程序中会弹出以下错误:

Mix_LoadMUS: Unrecognized audio format
Mix_PlayMusic: music parameter was NULL

就我而言,我一直试图以下列方式加载 test.mp3

Mix_Music * m_mainMusic;

m_mainMusic = Mix_LoadMUS("test.mp3");
if (m_mainMusic != nullptr)
    printf("Loaded the file\n");
else
    printf("Mix_LoadMUS: %s\n", Mix_GetError());

if (Mix_PlayMusic(m_mainMusic, -1) == -1) 
    printf("Mix_PlayMusic: %s\n", Mix_GetError());

我显然初始化了SDL子系统。

1 个答案:

答案 0 :(得分:1)

在以上解释的帮助下,我尝试重现您的问题,而引起类似问题的唯一原因是缺少运行时库。确保所有必需的库在运行时都可用(将它们复制到可执行文件的文件夹中或设置环境变量或使用静态链接。)随SDL_mixer一起分发的运行库为以下库:libmpg123-0,libmodplug-1, libFLAC-8,libogg-0,libopus-0,libopusfile-0,libvorbis-0,libvorbisfile-3和SDL2_mixer。

这些可以在这里获取:https://www.libsdl.org/projects/SDL_mixer/