Home Assistant media_player.media_stop 动作完全指南:停止媒体播放的 UI 与 YAML 配置
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
导读
media_player.media_stop是 Home Assistant 中用于停止媒体播放器播放的核心动作(action),适用于音箱、电视、投影仪等所有实现media_player域的实体。本文以官方动作文档为主体,结合仓库中的动作文档体系,完整讲解该动作在自动化(Automations)与脚本(Scripts)中的可视化配置步骤、YAML 写法、目标(Target)选择规则、真实自动化示例,以及使用该动作时的注意事项,帮助你准确掌握"停止播放"这一高频场景的标准实现方式。
动作概述
media_player.media_stop的动作定义为Stops playback on a media player(在媒体播放器上停止播放),所属域(domain)为media_player。它与其他播放控制动作配合形成完整的媒体控制链路:
| 动作 | 作用 |
|---|---|
media_player.media_stop | 停止播放 |
media_player.media_play | 开始或恢复播放 |
media_player.media_pause | 暂停播放 |
media_player.clear_playlist | 清空播放列表 |
相关动作的原始定义可参见 media_player.media_play.markdown、media_player.media_pause.markdown 与 media_player.clear_playlist.markdown。
"停止"与"暂停"的关键区别在于:停止通常结束当前播放并回到待机/初始状态,而暂停只是临时挂起当前播放进度,后续可以继续。
在用户界面中使用该动作
如果你倾向于通过可视化方式构建自动化和脚本,Home Assistant 会逐步引导你完成配置,无需编写任何 YAML(见 ui_header.md)。
要从自动化或脚本中停止播放,请按以下步骤操作:
- 进入设置>自动化与场景(Settings > Automations & scenes)。
- 打开一个现有的自动化或脚本,或选择创建自动化>创建新自动化。
- 如果是新建自动化,请在当(When)部分添加一个触发器(trigger)。脚本不需要触发器——脚本在被其他对象调用时才会运行。
- 在然后执行(Then do)部分,选择添加动作(Add action)。
- 选择要控制的设备。在按目标(By target)下(详见下文 目标(Targets)),选择要控制的媒体播放器。
- 在该目标显示的动作中,选择停止媒体(Stop media)。
- 选择保存(Save)。
UI 中的可选参数
该动作在 UI 中除目标(target)之外,没有其他可选参数。
在 YAML 中使用该动作
在 YAML 中直接编写时,该动作的名称为media_player.media_stop(YAML 字段参考见 yaml_header.md)。一个基础示例如下:
action: media_player.media_stop target: entity_id: media_player.living_room这段配置会停止media_player.living_room上的播放。
YAML 中的可选参数
与 UI 一致,该动作在 YAML 中除 target 之外也没有其他可选参数。
动作的目标(Targets)
该动作要求必须指定目标(target)。目标是动作的作用对象,你可以将动作指向单个实体(entity)、设备(device)、区域(area)、楼层(floor)或标签(label),Home Assistant 会对目标背后所有匹配的media_player实体执行该动作(详细说明见 targets.md)。
- 实体(Entity):一个特定的
media_player实体,例如media_player.living_room。 - 设备(Device):属于某台设备的所有
media_player实体。 - 区域(Area):某个房间或区域中的所有
media_player实体。 - 楼层(Floor):某个楼层上的所有
media_player实体。 - 标签(Label):共享某个标签的所有
media_player实体。
你也可以在同一个动作中混合选择不同类型的目标,例如同时添加一个具体实体和一个区域作为目标,让动作一次性作用于它们两者。
使用须知
- 该动作仅对支持停止(stopping)功能的媒体播放器有效。部分媒体播放器(如某些只支持暂停/播放的流媒体设备)可能不支持此动作,实际效果取决于对应集成(integration)的能力。
动手试一试
在真实设备上测试该动作最直接的方式:打开设置>工具>动作(Settings > Tools > Actions),搜索该动作,填写字段并选择执行动作(Perform action),无需编写一行 YAML 即可看到它在实际实体上的效果(见 try_it.md)。
更多示例
自动化:就寝时停止播放
在设定时间停止媒体播放器,例如确保你入睡时音乐停止。
- 触发器(Trigger):时间(Time):00:00
- 动作(Action):停止媒体(Stop media)
- 目标(Target):卧室音箱
完整 YAML 如下:
automation: - alias: "Stop playback at bedtime" triggers: - trigger: time at: "00:00:00" actions: - action: media_player.media_stop target: entity_id: media_player.bedroom这个示例结合了时间触发器与media_player.media_stop动作:每天午夜 00:00:00,自动化触发并停止media_player.bedroom的播放。你可以将at时间改为自己的就寝时间,将entity_id改为实际的播放器实体,即可直接投入使用。
其他真实场景中的用法(例如与动作media_player.media_play、media_player.media_pause、media_player.clear_playlist组合使用)可以参考 more_examples.md 中的思路,并结合上述 YAML 模板自行改编。
相关动作
以下动作与该动作配合使用效果良好:
- 开始播放(Play media):在媒体播放器上开始或恢复播放。
- 暂停播放(Pause media):暂停媒体播放器上的播放。
- 清空播放列表(Clear playlist):清空媒体播放器的播放列表。
在自动化中,常见的组合是"暂停/停止 → 切歌 → 恢复播放"的媒体控制流程;而media_player.media_stop通常用于需要在特定时间或特定状态(如离开房间、就寝)下彻底停止播放的场景。
常见问题
如果在使用该动作时遇到问题,可以携带你所调用的动作及预期行为,向 Home Assistant 社区求助(见 stuck.md)。排查时建议优先确认三件事:
- 目标实体是否属于
media_player域,且已被正确配置; - 该媒体播放器集成是否真正支持"停止"能力;
- 在设置>工具>动作中手动执行一次,观察实际效果以判断是配置问题还是设备能力问题。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考