我正在使用SDL2(以及所有扩展库)开发一个程序。其中一个库当然是SDL_Mixer v2.0.2。
使用SDL_Mixer,所有示例和教程都使用Mix_Init
函数(以及程序末尾的后续Mix_Quit
)。根据我的理解,这会加载动态库,如ogg,mpg123等。但是,我已将所有库静态链接到可执行文件(SDL_Mixer和所有音频库)。
这是否意味着我不需要打电话给Mix_Init
?我问这个,因为函数总是返回不正确的标志(这意味着它无法加载)。即使它失败了,或者我甚至没有打电话给它,我仍然可以播放.mp3
,.flac
和所有其他音频格式。
因为没有它它似乎工作正常,我想完全没有调用函数。但与此同时,我想确定我正在做的是它应该如何处理,并且没有一些实际的无法错误导致内存泄漏或其他什么。
这是否意味着我不需要调用Mix_Init?
我不会这样做,而是继续打电话给Mix_Init
。
其中一个库当然是SDL_Mixer v2.0.2。 [...]我问这个,因为函数总是返回不正确的标志(这意味着它无法加载)
不幸的是,这是SDL Mixer v2.0.2的known bug,我之前遇到了很多麻烦。
错误很明显,这是另一种说法,Mix_Init
返回错误的标志:
Mix_Init始终返回0 - 未找到支持的音乐界面
事实上,这并不意味着它没有加载某些东西而你自己也注意到了它:
即使它失败了,或者我甚至没有打电话给它,我仍然可以播放.mp3,.flac和所有其他音频格式。