SDL2_Mixer:静态链接的音频库不需要Mix_Init吗?

时间:2018-09-01 20:10:53

标签: sdl-2 sdl-mixer

我正在使用SDL2(和所有扩展库)开发程序。这些库之一是SDL_Mixer v2.0.2。

对于SDL_Mixer,所有示例和教程都使用Mix_Init函数(以及程序末尾的后续Mix_Quit)。据我了解,这会加载动态库,例如ogg,mpg123等。但是,我已将所有库静态链接到可执行文件(包括SDL_Mixer和所有音频库)。

这是否意味着我不需要致电Mix_Init?我问这个问题是因为函数总是返回不正确的标志(这意味着它加载失败)。即使失败,或者我什至不称呼它,我仍然可以播放.mp3.flac以及所有其他音频格式。

由于没有它似乎可以正常工作,所以我想完全不调用该函数。但同时,我想确定自己在做什么,应该如何处理它,并且没有任何实际的未处理错误导致内存泄漏或其他任何情况。

1 个答案:

答案 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和所有其他音频格式。