公告

公告是通过 tts.xxxxxxmusic_assistant.play_announcement HA 操作从 Home Assistant 发送到 MA 播放器的文本转语音或音频文件。

概述

如果 MA 正在播放音乐,则会暂时暂停并在公告后恢复。

播放器将在公告前打开,如果公告前未打开/活动,则再次关闭。

播放公告时可以调整音量。

如果播放器类型原生支持公告(例如 Sonos、Snapcast),则将优先使用该功能而非 MA 功能,提供更流畅的体验。

该功能适用于 Music Assistant 支持的所有播放器。

每个播放器都有设置,允许调整公告播放的某些方面。群组只有预告音设置。

!image

原生支持

如果将公告发送到支持原生公告的单个播放器,公告将由播放器本身处理。

原生公告支持通常意味着播放器可以在正在播放的任何音乐上"叠加"公告。它将"压低"音乐音量(或完全静音),以增强的音量播放公告,然后恢复音乐音量。音乐继续播放,整个公告将由播放器本身处理。

目前唯一(已知)支持原生公告的播放器类型是 Sonos S2 扬声器和 Snapcast。希望更多播放器类型跟随。

MA 播放器支持

如果播放器不支持原生公告,MA 将通过停止任何正在播放的音乐、调整音量(按配置)、播放公告、然后恢复之前状态来处理它。

NOTE

MA 公告功能只有在播放器正确报告状态(例如播放、暂停、空闲)和进度报告(已用时间)时才能可靠工作。如果其中任何一个没有正确更新,公告将工作不佳。

ESPHome 可能在状态更新方面不可靠,因此这种播放器类型可能会出现问题。同样适用于某些 HA 媒体播放器。这些平台的未来更新应改善性能。

如果播放器在播放公告后没有恢复,或者需要很长时间,请检查 HTTP 配置文件设置。可能需要使用 Fixed content length。例如,ESPHome 设备可能有此问题。

群组行为

如果将公告发送到原生 Google Cast 群组、同步群组或通用群组,公告将始终播放到所有子播放器。在这种情况下,是否使用预告音的偏好定义在群组播放器上。公告的音量设置是按播放器定义的。如果其中一个子播放器已经在播放,播放将被中断且不会恢复。在自动化中记住这一点,将公告定向到单个播放器,或者在需要时重新启动单个播放器播放。Google Cast 群组应同步播放公告。

如果将公告发送到手动同步的一组播放器,公告将播放到所有子播放器(同步)。

如果将公告发送到一个同步群组(临时或永久),且所有子播放器都支持原生公告,则将使用原生功能播放公告,MA 将确保公告(或多或少)同时开始,因此所有播放器应同步播放公告。

如果将公告发送到当前同步到另一个播放器的播放器(且不支持原生公告),它将临时取消同步,播放公告,然后重新添加到群组。

在所有情况下,播放应在公告后恢复。

NOTE

如果公告发送到群组的一个播放器,播放需要在之后恢复,对于 AirPlay 和 Squeezelite 这将是明显的

NOTE

如果公告发送到群组的一个播放器,且该播放器是永久同步群组的同步主播放器,则这将与将请求发送到整个同步群组相同。所有播放器将播放公告,整个群组将在之后恢复。

上述未提及的任何情况不受支持