3

我正在使用 SDL2(和所有扩展库)开发一个程序。其中一个库当然是 SDL_Mixer v2.0.2。

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

这是否意味着我不需要打电话Mix_Init?我问这个是因为该函数总是返回不正确的标志(这意味着它无法加载)。即使它失败了,或者我什至没有调用它,我仍然可以播放.mp3,.flac和所有其他音频格式。

由于没有它似乎可以正常工作,所以我想根本不调用该函数。但与此同时,我想确定我正在做的是应该如何处理它,并且没有一些实际的非处理错误导致内存泄漏或其他什么。

4

1 回答 1

0

这是否意味着我不需要调用 Mix_Init?

我不会那样做,而是继续打电话Mix_Init

其中一个库当然是 SDL_Mixer v2.0.2。[...] 我问这个是因为该函数总是返回不正确的标志(这意味着它无法加载)

不幸的是,这是 SDL Mixer v2.0.2 的一个已知错误,我之前遇到了很多麻烦才意识到它。
错误很明显,这是另一种说法,Mix_Init返回不正确的标志:

Mix_Init 始终返回 0 - 未找到支持的音乐接口

实际上,这并不意味着它无法加载某些内容并且您自己注意到了:

即使它失败了,或者我什至不叫它开始,我仍然能够播放 .mp3、.flac 和所有其他音频格式。

于 2018-09-08T13:08:22.343 回答