AudioPlayer" PlaybackNearlyFinished"申请Alexa Skills Kit,不工作

时间:2017-01-13 18:16:43

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

我写了一个Alexa技能,它使用Lambda函数播放给定网址的唯一音频。

意图叫" PlayAudio"正在工作,并播放我们的JSON格式的API中的第一个音频项目。

意图叫" PlaybackNearlyFinished"不起作用,又称,不播放我正在播放的音频文件。任何人都可以确切地解释为什么这不起作用?

以下是我的Lambda函数的一个部分,其中包含两个Intent:

Fact.prototype.intentHandlers = {
    "PlayAudio": function (event, context, response) {
          fetchEnseParse("/latest", function(body) {
            if(body == "error") {
            } 
            else {
                var directives = body.enses.map(function(ense) {
                    var a = ense[1].fileUrl;
                    return {
                         'playBehavior': 'REPLACE_ALL', 
                         'audioItem': 
                             {
                                 'stream': 
                                     {
                                         'url': 'https://s3.amazonaws.com/media.ense.nyc/enses/2017_01_13T16_57_20.190Z/30312/0', 
                                         'token': '33529', 
                                         'offsetInMilliseconds': 0
                                     }
                             }, 
                             'type': 'AudioPlayer.Play'
                    };
                })
            }
            var jsonresponse = {
                'outputSpeech': {
                     'text': '', 
                     'type': 'PlainText'
                    }, 
                'directives': [directives[0]]
            };     
            response.justUseThisJsonPlease( { response: jsonresponse } );
        });
    },


    "AudioPlayer.PlaybackNearlyFinished" : function(event, context, response) {
            var second = 
            {
              "type": "AudioPlayer.Play",
              "playBehavior": "REPLACE_ENQUEUED",
              "audioItem": {
                "stream": {
                  "url": "https://s3.amazonaws.com/media.ense.nyc/enses/violetindigoviolet/30034/0",
                  "token": "33530",
                  "offsetInMilliseconds": 0
                }
              }
            }
            response.justUseThisJsonPlease( { response: second } );
    },

1 个答案:

答案 0 :(得分:4)

您似乎在回复中包含了outputSpeech。

对于常规意图,这是可以的,但对于此页面,不适用于AudioPlayer请求: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/custom-audioplayer-interface-reference

这条特别说明: enter image description here

查看确切的有效负载也可以提供帮助。您可以使用它在本地测试并获取: https://bespoken.tools/blog/2016/08/24/introducing-bst-proxy-for-alexa-skill-development

你应该看到来自Alexa的额外请求,SystemExceptionEncountered,它应该提供有关错误的更多信息。当对AudioPlayer请求的响应不正确时,它会发送此信息。