首页 > 解决方案 > 是否可以以编程方式暂停和恢复技能?

问题描述

我正在开发一种支持运动训练的 Alexa 技能。当人们在锻炼时,Alexa 会播放背景音频。

我想知道是否可以暂停训练并稍后恢复。例如,假设训练持续 60 秒。当用户在 30 秒内说“暂停训练”时,Alexa 将停止播放音频以等待下一个命令。稍后当用户说“恢复训练”时,Alexa 将从暂停的 30 秒开始恢复音频。如果等待时间太长,比如 60 秒,Alexa 就会超时。目前,我只是使用 this.response.speak(audioName) 来播放音频。

我正在搜索开发人员文档,但找不到任何相关的解决方案。有可能吗?提前致谢!

标签: node.jsaws-lambdaalexa-skillalexa-slot

解决方案


Alexa Skills 不能这样暂停,但您可以通过将技能会话详细信息保存到 firebase 或 dynamoDB 等数据库来获得类似的结果。只要你说 Alexa,要求暂停训练,数据就会被保存。所以下次你说 Alexa,要求恢复训练时,该技能会获取保存的详细信息并从那里开始。

有几点需要考虑:

  1. 您的技能仅在会话打开时才有效。每次交互之间大约有 8 秒。您可以在回复中使用最长 90 秒的简短音频片段,以使技能保持更长时间。

  2. 您可以使用 AudioPlayer 指令播放 10 秒的音乐/无声曲目并循环播放。所以技能开始了,这是你的第一个练习,时长为两分钟。音频循环播放两分钟,然后您的技能会播放通知声音。这具有使用本机命令(如 Resume 和 Pause)而不使用技能名称的额外优势。


推荐阅读