跳转到内容

扬声器组件 (Speaker Components)

speaker 域包含所有 speaker 平台共用的通用功能。

speaker:
- platform: ...

配置变量:

  • audio_dac (可选, ID): 用于音量控制的 音频 DAC。

如果您的配置 YAML 中只有一个 speaker,则所有 speaker 动作都可以在不指定 id 的情况下使用。

此动作将从扬声器开始播放原始音频数据。

on_...:
# 静态原始音频数据
- speaker.play: [...]
# 可模板化,返回类型为 `std::vector<uint8_t>`
- speaker.play: !lambda return {...};
# 如果需要指定扬声器 ID
- speaker.play:
id: my_speaker
data: [...]

配置变量:

  • id (可选, ID): 要控制的扬声器。默认为 YAML 中唯一的一个。
  • data (必填, bytes 列表, 可模板化): 要播放的原始音频数据。

此动作将停止从扬声器播放音频数据并丢弃未播放的数据。

配置变量:

  • id (可选, ID): 要控制的扬声器。默认为 YAML 中唯一的一个。

此动作将在所有数据 已 播放完毕后停止从扬声器播放音频数据。

配置变量:

  • id (可选, ID): 要控制的扬声器。默认为 YAML 中唯一的一个。

此动作将静音扬声器。

配置变量:

  • id (可选, ID): 要控制的扬声器。默认为 YAML 中唯一的一个。

此动作将取消扬声器静音。

配置变量:

  • id (可选, ID): 要控制的扬声器。默认为 YAML 中唯一的一个。

此动作将设置扬声器的音量。

on_...:
# 简单
- speaker.volume_set: 50%
# 完整
- speaker.volume_set:
id: speaker_id
volume: 50%
# 简单的 lambda
- speaker.volume_set: !lambda "return 0.5;"

配置变量:

volume (必填, percentage): 要将扬声器设置的音量。

如果您的配置 YAML 中只有一个 speaker,则所有 speaker 条件都可以在不指定 id 的情况下使用。

此条件将检查扬声器当前是否正在播放音频数据。

配置变量:

  • id (可选, ID): 要检查的扬声器。默认为 YAML 中唯一的一个。

此条件将检查扬声器是否已完全停止播放音频数据并处于空闲模式。

.. note:

在 speaker.is_playing 为 false 和 speaker.is_stopped 为 true 之间,‘speaker’ 组件正在关闭用于正确播放数据的数据结构。最好检查扬声器是否已停止,而不是检查它是否正在播放。

配置变量:

  • id (可选, ID): 要检查的扬声器。默认为 YAML 中唯一的一个。