【发布时间】:2018-05-16 22:44:27
【问题描述】:
所以显然我一直在尝试使用 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 子系统。
【问题讨论】:
-
请发布一个MVCE和mp3文件。
-
您是否使用至少
MIX_INIT_OGG位致电Mix_Init?它的返回值是否与您传递给它的位掩码相同? -
对于我在 macOS 上的情况,我需要安装
libmpg123(播放 MP3)并将其.dylib与可执行二进制文件位于同一目录级别。 WINdows 也是如此,因为我使用 macOS 的交叉编译对其进行了测试。同样,您需要使用标志调用Mix_Init()来为您打算使用的文件格式初始化SDL_mixer,并检查其返回结果,以便您可以更准确地调试它出了什么问题。