node.js - 是否可以以编程方式暂停和恢复技能?
问题描述
我正在开发一种支持运动训练的 Alexa 技能。当人们在锻炼时,Alexa 会播放背景音频。
我想知道是否可以暂停训练并稍后恢复。例如,假设训练持续 60 秒。当用户在 30 秒内说“暂停训练”时,Alexa 将停止播放音频以等待下一个命令。稍后当用户说“恢复训练”时,Alexa 将从暂停的 30 秒开始恢复音频。如果等待时间太长,比如 60 秒,Alexa 就会超时。目前,我只是使用 this.response.speak(audioName) 来播放音频。
我正在搜索开发人员文档,但找不到任何相关的解决方案。有可能吗?提前致谢!
解决方案
Alexa Skills 不能这样暂停,但您可以通过将技能会话详细信息保存到 firebase 或 dynamoDB 等数据库来获得类似的结果。只要你说 Alexa,要求暂停训练,数据就会被保存。所以下次你说 Alexa,要求恢复训练时,该技能会获取保存的详细信息并从那里开始。
有几点需要考虑:
您的技能仅在会话打开时才有效。每次交互之间大约有 8 秒。您可以在回复中使用最长 90 秒的简短音频片段,以使技能保持更长时间。
您可以使用 AudioPlayer 指令播放 10 秒的音乐/无声曲目并循环播放。所以技能开始了,这是你的第一个练习,时长为两分钟。音频循环播放两分钟,然后您的技能会播放通知声音。这具有使用本机命令(如 Resume 和 Pause)而不使用技能名称的额外优势。
推荐阅读
- visual-studio-code - 我想减少 VSCode 中的遥测
- c++ - 返回局部结构变量的成员变量是否安全?
- c# - 为什么服务总线输出绑定不适用于 Azure Functions?- 没有错误
- javascript - 如何在多个数组中找到最大的数字
- data-binding - 让 AVPlayer 的 SwiftUI 包装器在视图消失时暂停
- google-drive-api - 如何使用 Google Drive 获取请求文件/文件夹权限的用户列表
- sql - 如何将此查询中的 [Confirmed / Total] 字段转换为 lambda?与 CAST
- python - 从 Python 输出 JSON 文件。JSON 文件中的数据混乱
- c# - LINQ如何跨多个列表返回公共对象
- google-apps-script - Google Apps 脚本问题