【问题标题】:How to close an Alexa skill that uses AudioPlayer interface如何关闭使用 AudioPlayer 界面的 Alexa 技能
【发布时间】:2019-03-03 02:09:55
【问题描述】:

我目前正在开发一项 Alexa 技能,我使用AudioPlayer 界面来播放歌曲。

当调用取消意图时,我会做一个:

'AMAZON.CancelIntent': function() {
this.emit(':tell', "Bye!");}

问题是alexa说“Bye”后,音频没有暂停,技能还在运行。

如何从 Intent 处理程序关闭技能?

【问题讨论】:

    标签: aws-lambda alexa alexa-skills-kit alexa-skill


    【解决方案1】:

    您必须发送AudioPlayer.Stop 指令来停止任何当前正在播放的音频流。

    'AMAZON.CancelIntent': function() {
       this.response.speak('Bye').audioPlayerStop();
       this.emit(':responseReady');
    }
    

    在 ask-sdk-v2 中你可以使用:

    return handlerInput.responseBuilder
          .addAudioPlayerStopDirective()
          .getResponse();
    

    更新
    Alexa 服务将跟踪您的音频播放器技能作为最近流式传输音频的技能,对于任何内置意图,Alexa 将创建一个新会话并触发对您技能的请求。

    当您的技能发送播放指令开始播放时,Alexa 服务会将音频流发送到设备进行播放。 一旦会话正常结束(例如,如果您的响应 包括将 shouldEndSession 标志设置为 true),Alexa 记得 您的技能开始播放,直到用户执行其中一项 以下:

    1. 使用不同的技能调用音频播放。
    2. 调用另一个流式传输音频的服务,例如内置音乐服务或 Flash 简报。
    3. 重启设备。

    查看此文档Built-in Intents for Playback Control

    更多关于 AudioPlayer 指令here

    【讨论】:

    • 音频因此暂停,但技能仍在运行,我想要的是在调用此意图后关闭技能。无论如何,感谢您的快速回复
    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多