c++ - 树莓派SFML播放音频

标签 c++ audio raspberry-pi sfml

无法让 SFML 在 Raspberry 上运行。

这可以做到吗?我需要播放几个声音文件,每个声音文件之间的时间间隔很短。并在我的Mac上成功制作了一个程序。这将用在 RPi 上。

有人成功完成过这个操作吗?

我尝试使用 g++ 和 code::blocks 设置它,但无法让它工作,我认为这与链接文件有关。 但现在我开始怀疑这是否可能?

如果不是,有什么建议可以使用c++在树莓派上播放声音文件的简单(我不是那么有经验)库吗?

希望有人能尽快指出我正确的方向......

最佳答案

我最近设法让 SFML 2.0 在我的 raspi 上运行,但这并不容易。 SFML 1.6 可用于树莓派:

sudo apt-get install libsfml-dev

但我发现这与我用 SFML 2.X 编写的程序不兼容。我也尝试过使用SFML提供的Linux 32位二进制包,但失败了。 我相信这是因为 raspi 使用 ARM 处理器,而这不是该构建的目的。

我终于成功从the SFML download page下载Linux源码了。我得到了 SFML 2.0,因为我找到的从源代码构建 SFML 的说明适用于该版本,并且它足够新,可以正常运行,尽管您可能想尝试较新的版本。我下载了所有依赖项并尝试使用我获得的脚本进行安装 here 。这可能对你有用,但我遇到了 freetype 库的问题。我找到的解决方案是将所有 freetype 头文件复制到父“include”目录中。可能有更好的方法,但这对我有用。我希望这有帮助。

编辑:我只需在全新的 Raspian 安装上再次执行此操作。这次我使用了SFML 2.3。我对 freetype 没有遇到同样的问题,但我必须安装以下依赖项:

sudo apt-get install libx11-xcb-dev
sudo apt-get install libxcb-image0-dev
sudo apt-get install libxcb-randr0-dev
sudo apt-get install libudev-dev

这是我使用的脚本:

安装依赖项:

sudo apt-get install libpthread-stubs0-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libx11-dev
sudo apt-get install libxrandr-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libglew1.5-dev
sudo apt-get install libjpeg8-dev
sudo apt-get install libsndfile1-dev
sudo apt-get install libopenal-dev
sudo apt-get install cmake
sudo apt-get install g++

构建它:

echo Starting SFML 2.0 install
echo see install.log for install output..
echo No.. Really.. Read it, this is my first
echo batch script for linux, so expect bugs
echo especially because I can\'t be stuffed
echo using regex to look for error output


echo building make for dynamic release
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=TRUE > install.log
echo Complete
echo making
make >> install.log
echo Complete
echo Installing
sudo make install >> install.log
echo Complete

echo building make for dynamic debug
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=TRUE >> install.log
echo Complete
echo making
make >> install.log
echo Complete
echo Installing
sudo make install >> install.log
echo Complete


echo building make for static release
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=FALSE >> install.log
echo Complete
echo making
make >> install.log
echo Complete
echo Installing
sudo make install >> install.log
echo Complete


echo building make for static debug
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=FALSE >> install.log
echo Complete
echo making
make >> install.log
echo Complete
echo Installing
sudo make install >> install.log
echo Complete

运行这些,只需简单

  1. 将它们复制到文本文件中

  2. 使用文件扩展名.sh保存

  3. 在属性中,使其可执行 (或者,在终端中:sudo chmod +x yourfile.sh)

  4. 打开它并单击“在终端中执行” (或者,在终端中:./yourfile.sh)

关于c++ - 树莓派SFML播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277033/

相关文章:

c++ - 错误 : cannot convert 'Vector (*)(double, Vector)' to 'ForwardEulerSolver*' in initialization

android - 哪种AudioEncoder编解码器最适合Android上最高质量的音频录制

javascript - 音频当前时间的JavaScript比较导致无尽的while循环

c - 开放计算机视觉中 C 中 undefined reference

linux - 无法在 Raspberry pi 启动时启动 grabserial

C++ 抽象类 : constructor yes or no?

c++ - 该递归函数如何工作?

c++ - 遍历嵌套的字符串 vector

ios - 如何以编程方式设置音频文件的特定顺序?

numpy - numpy 是否自动针对 raspberry-pi 进行了优化