c++ - 初始化 SDL_Mixer 给出错误 "Can' t 设置 PulseAudio 流”

标签 c++ linux sdl sdl-mixer raspberry-pi3

我在运行 Ubuntu-MATE 的 raspberry-pi 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 的初始化时需要这个模块,有没有办法绕过它?我不打算在我的应用中使用网络功能。

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

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

谢谢

最佳答案

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

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

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

谢谢

关于c++ - 初始化 SDL_Mixer 给出错误 "Can' t 设置 PulseAudio 流”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36720881/

相关文章:

c++ - Xcode 在 C++ 中访问资源

c++ - 调整 SDL2 窗口大小?

sdl - Nim 和 SDL2 与 Rect 相关的问题

c++ - 我如何在阅读时 "unzip"gzip 流

c++ - std::map 中 vector 值的迭代器

linux - 如何在不输入整个 PATH 的情况下从 Linux 终端运行可执行文件

java - war 文件没有爆炸的原因可能是什么?

c++ - 为什么 std::forward 将我的左值变成右值?

c++ - 易于使用 PNG 库?

linux - 如何静态链接使用./configure 的Linux 软件?