#intent #executable #track #associated #playing #required #intents

app bmos_server

bmOS_server是一个负责接收意图并渲染其关联的BMO面孔以及播放音频轨道的可执行文件。这是运行自定义BMO-Boy所需的软件之一。图片和博客文章即将推出。更详细的文档可以在这里找到。

4个稳定版本

1.0.3 2021年8月28日
1.0.2 2021年8月21日
1.0.1 2021年7月16日

#443 in 音频

GPL-3.0-or-later

44KB
542

bmOS_server

bmOS_server是一个负责接收意图并渲染其关联的BMO面孔以及播放音频轨道的可执行文件。这是运行我的自定义BMO-Boy所需的软件之一。图片和博客文章即将推出。更详细的文档可以在这里找到。

有关bmOS_client的文档和设置信息(它是将意图发送到该组件的其他软件组件)也可以在这里找到,源代码位于这里

依赖项

以下库是运行它所需的

  • libSDL2-2.0
  • libSDL2_image-2.0
  • libSDL2_ttf-2.0
  • cmake(soloud的构建依赖项)
  • libopenal-dev(用于播放音频轨道,使用soloud)

构建

使用cargo,运行cargo install bmos_server以下载和编译它。

配置文件

以下配置文件需要与可执行文件在同一文件夹中

  • faces.txt:指示为每个意图显示的BMO面孔的图像文件。对于客户端将发送的每个意图,都必须至少有一个条目,除了预设的天气和计时器功能意图之外。否则,应用程序将崩溃。
  • audio.txt:指示为每个意图播放的音频轨道。可以为空
  • timings.txt:指示每个意图的时间限制。对于没有音频轨道的每个意图,都必须有一个条目,再次排除预设的意图。

有关每个配置文件中语法和所需内容的信息可以在config模块函数的文档中找到。

必需的意图

以下意图在faces.txt中必须定义面孔

  • "默认":用于显示 BMO 的默认/回退面孔。

以下文件必须在可执行文件文件夹中存在

  • ./assets/faces/alarm.jpg:计时器结束后显示的警报面孔。
  • ./assets/audio/alarm.wav:计时器结束后播放的警报音频轨道。
  • ./assets/font.ttf:显示文本时使用的字体。我推荐视频终端屏幕

关闭

  • bmOS_server 监听键盘输入。如果按下 ESC 键,应用程序将退出。
  • 如果它在无头服务器上运行,退出的一种适当方式是关闭向其发送意图的 bmOS_client(或其他来源)。这将触发安全关闭。

假设

在运行此应用程序时做出以下假设

  • 系统已安装 openAL、SDL2 和 SDL2-ttf 库
  • 如果运行 bmOS_server 的设备是音频(麦克风)源,它将通过其他方式将其流式传输到运行 bmOS_client 的设备。bmOS_server 不记录任何音频,只监听其提供的地址接收到的字符串。

建议

  • 由于必需文件的路径是预先确定的,我建议将所有资源放在可执行文件所在位置的 "assets" 文件夹中。
  • 为每个意图提供适当的计时。例如,对于一个没有音频轨道的给定意图设置 100 将使其跳过它并返回默认状态。我发现此类意图的好计时是 4500(4'5 秒)。
  • 我使用过所有种类的图像和音频格式并成功,对于图像我坚持使用 .jpg 和 .png,对于音频我坚持使用 .ogg 和 .wav。越压缩越好,因为它们是从磁盘读取的,并且像树莓派这样的设备读取它们真的很慢。

依赖项

~29–42MB
~716K SLoC