首页 > 解决方案 > SDL Mix_LoadMUS 未加载 .mp3

问题描述

所以显然我一直在尝试使用 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 子系统。

标签: c++sdlmp3sdl-mixer

解决方案


在上述解释的帮助下,我试图重现您的问题,而导致类似问题的唯一原因是缺少运行时库。确保所有必需的库在运行时可用(将它们复制到可执行文件的文件夹中或设置环境变量或使用静态链接。)随 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/


推荐阅读