C++ SDL Mix_LoadMUS未加载。mp3
显然,我一直在尝试使用SDL_混音器加载.mp3。但是,与libsdl wiki相反,这不起作用: 我希望它能工作,但在加载和播放文件时,我的控制台应用程序中突然出现以下错误:C++ SDL Mix_LoadMUS未加载。mp3,c++,sdl,mp3,sdl-mixer,C++,Sdl,Mp3,Sdl Mixer,显然,我一直在尝试使用SDL_混音器加载.mp3。但是,与libsdl wiki相反,这不起作用: 我希望它能工作,但在加载和播放文件时,我的控制台应用程序中突然出现以下错误: Mix_LoadMUS: Unrecognized audio format Mix_PlayMusic: music parameter was NULL 就我而言,我一直试图通过以下方式加载test.mp3: Mix_Music * m_mainMusic; m_mainMusic = 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子系统。在上述解释的帮助下,我试图重现您的问题,唯一导致类似问题的是缺少运行库。确保所有必需的库在运行时可用(将它们复制到可执行文件的文件夹中,或设置环境变量或使用静态链接)。随SDL_mixer分发的运行时库包括以下库:libmpg123-0、libmodplug-1、libFLAC-8、libogg-0、libopus-0、libopusfile-0、libvorbis-0、,libvorbisfile-3和SDL2_混频器
这些可以在这里获得:请发布MVCE和mp3文件。您是否至少使用
Mix\u Init\OGG
位调用了Mix\u Init
?它的返回值是否与您传递给它的位掩码相同?对于我在macOS上的案例,我需要安装libmpg123
(播放MP3),并使其.dylib
与可执行二进制文件位于同一目录级别。WIndows也是如此,我用macOS的交叉编译测试了它。同样,您需要调用带有标志的Mix_Init()
,以初始化您要使用的文件格式的SDL_mixer
,并检查其返回结果,这样您就可以更精确地调试它出了什么问题。