【问题标题】:Alexa will not play audio from a stream using lambda and pythonAlexa 不会使用 lambda 和 python 从流中播放音频
【发布时间】:2017-05-16 17:26:23
【问题描述】:

我一生都无法理解为什么这不起作用。

这是我的 lambda 函数

def lambda_handler(event, context):
    url = "https://prod-65-19-131-166.wostreaming.net/kindred-wcmifmmp3-128"
    return build_audio_response(url)

def build_audio_response(url):
    return {
        "version": "1.01",
        "response": {
            "directives": [
                {
                "type": "AudioPlayer.Play",
                "playBehavior": "ENQUEUE",
                "audioItem": {
                    "stream": {
                        "token": "sdfsdfsdfsdfsdf3ew234235wtetgdsfgew3534tg",
                        "url": url,
                        "offsetInMilliseconds": 0
                    }
                }
            }
        ],
        "shouldEndSession": True
    }
}

当我在开发门户中运行测试时。我得到了应有的回应,但它缺少指令。

{
  "version": "1.01",
  "response": {
  "shouldEndSession": true
},
  "sessionAttributes": {}
}

Alexa 只是说“请求的技能响应有问题”。

嗯,我认为是因为指令没有结束。但是我已经测试了流,它可以工作。这是https。有一个令牌。我错过了什么?

【问题讨论】:

  • 我在导航到该 URL 时遇到证书错误...这可能是相关的吗?
  • 我解决了这个问题,但由于某种原因它仍然无法正常工作。还有其他建议吗?

标签: python python-2.7 amazon-web-services alexa alexa-skills-kit


【解决方案1】:

来自 Alexa 的响应意味着该技能返回了 Alexa 不知道如何解析的无效响应。

如果您还没有,您应该检查您的 CloudWatch 日志中的 Lambda 函数,看看那里是否出现任何错误:https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#

据我所知,开发者门户仍然不显示指令,因此您不想在那里进行测试。来自开发者门户 Alexa 技能测试页面:

注意:Service Simulator 目前不支持测试音频 玩家指令和客户帐户关联。

如果在 CloudWatch 中未发现任何错误,您可以做的进一步调试是从该页面复制/粘贴 Service Request 并将其用作您的 Lambda 函数的自定义测试。在 Lambda 页面上,单击 Actions 下拉菜单并选择 Configure Text Event 并将您从开发人员门户中的请求粘贴到其中。这将使您更好地了解您返回给 Alexa 的响应。如果您无法弄清楚这一点,请在此处添加该响应,我们将尝试进一步解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多