1

我在运行在 Ubuntu-MATE 上的树莓派 3 上编写应用程序。我在带有 SDL 和 SDL_Mixer 的 code::blocks 上使用 C++ 来播放 mp3 文件(我仍在使用 SDL 库的 v1.2)。

初始化 SDL 时我没有收到错误,但是当我使用此行初始化 SDL_Mixer 时:

Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 1, 1024)

它返回 -1,所以我使用 Mix_GetError() 方法收到错误消息,它给了我“无法设置 PulseAudio 流”消息。

我不知道 PulseAudio 是什么,所以经过一些研究后我了解到它用于网络流音频流。为什么在 lib 的 init 处需要这个模块,有没有办法绕过它?我不打算在我的应用程序中使用网络功能。

另外,我检查了一下"sudo apt-get install pulseaudio"以确保我没有丢失一些库,但我的数据包管理器似乎表明我有最新的更新......

任何线索都会对我有很大帮助!

谢谢

4

1 回答 1

1

我终于自己解决了……这是一个可恶的错字。我为频率初始化参数写了 444100 而不是 44100:/

现在一切都正确加载了(对于 SDL,我只用于SDL_INIT_EVERYTHING询问的人)。顺便说一句,我只使用SDL来使用SDL_Mixer;我想 SDL_Mixer 不能独立运行,那么我可以在 SDL 中加载哪个模块来仅初始化基础知识?

另外,现在我很好奇:为什么 SDL_Mixer 需要 PulseAudio 来初始化?

谢谢

于 2016-04-19T20:09:25.577 回答