跳转到内容

扬声器组件

speaker 域包含各扬声器平台共用的功能。

speaker:
- platform: ...

配置变量:

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

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

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

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

配置变量:

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

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

配置变量:

  • 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 (必需, 百分比): 要设置的扬声器音量。

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

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

配置变量:

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

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

.. note:

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

配置变量:

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