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