【问题标题】:SFML play audio raspberry PISFML 播放音频树莓派
【发布时间】:2015-11-23 11:14:36
【问题描述】:

无法让 SFML 在 Raspberry 上运行。

这可以吗?我需要在每个声音文件之间播放几个声音文件。并在我的mac上成功制作了一个程序。这将用于 RPi。

有没有人成功做到这一点?

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

如果不是,是否有任何关于使用 C++ 播放声音文件的简单(我不是那么有经验)库的建议?

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

【问题讨论】:

  • 您需要 SFML 2 吗?显然 SFML 1.6 可用于 rpi raspberrypi.org/forums/viewtopic.php?t=42392&p=341532 如果你真的需要 SFML 2.0,你需要自己编译。我不知道您为什么尝试使用代码块。我认为使用 cmake 和 make 构建库会容易得多。 cmake 会告诉你是否缺少外部依赖项。我还阅读了 SFML 图形可能无法在 rpi 上正常工作。
  • 感谢您的回复。你有关于如何构建库的指南吗?

标签: c++ audio raspberry-pi sfml


【解决方案1】:

我最近设法让 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 头文件复制到父“包含”目录。可能有更好的方法,但这对我有用。我希望这会有所帮助。

编辑:我只需要在全新的 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

【讨论】:

  • 完美,我已将我的应用程序改为使用 SDL_Mixer。但会尝试让 SFML 在未来的项目中发挥作用!
猜你喜欢
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多