c# - Alexa Skill C#无法播放音频

标签 c# audio alexa

我有一种Alexa技能,想在发布时播放一首歌。我正在将VS2017与AWS Toolkit和AWS Lambda函数一起使用。我已经配置并构建了Alexa技能,并发布了Lambda函数,并通过Alexa Console测试和Alexa Echo进行了验证,所有这些都可以正常工作。

当我从在SkillResponse中返回文本更改为使用AudioPlayerPlay(从Alex.NET Nuget包中)返回音频指令时,我得到了看起来格式正确的JSON,但是Alexa Console测试表明其不受支持的设备和我的Alexa Echo什么也没做。

这是AWS Lambda测试中的JSON。

{
  "version": "1.0",
  "response": {
    "shouldEndSession": true,
    "directives": [
      {
        "playBehavior": "REPLACE_ALL",
        "audioItem": {
          "stream": {
            "url": "https://music.amazon.com/my/albums/You+Get+What+You+Give/YOU+GET+WHAT+YOU+GIVE/ZAC+BROWN+BAND?ie=UTF8&albumAsin=B00438BTJ6&playNow=1&trackAsin=B004386MMU",
            "token": "scrumstartsong",
            "expectedPreviousToken": null,
            "offsetInMilliseconds": 0
          }
        },
        "type": "AudioPlayer.Play"
      }
    ]
  }
}

这是Alexa Console测试中Directive:AudioPlayer.Play命令的条目
{
    "header": {
        "namespace": "AudioPlayer",
        "name": "Play",
        "messageId": "d0c18d3c-2403-4f56-a059-67f3855f4e47",
        "dialogRequestId": "0bae3b83-21f6-47a3-ae7c-b13b9487e60e"
    },
    "payload": {
        "audioItem": {
            "audioItemId": "amzn1.as-ct.v1.ThirdPartySdkSpeechlet#ACRI#url#ACRI#{\"directedCustomerId\":\"amzn1.ask.account.AHGMQILIBZCL6YKVYSGTEOJGJ2B7I3FUTXBL7AZWBULBPMOA4CGW7JBRTO7AZXAWVLVDLEB4EP3XRPOZXAUVA64I66QCHGSZ5A3OK4GHP4TR6BOJVAEKXVGD7NTASS6AYD5RDCBS4JS3SH7EFGYBWS34F7TC7GFMDOWRICBA6EYYKISCVKURCUMFTSXXWZDXUVE7NG336KWDJHY\",\"modelKey\":\"amzn1.ask.skill.8e374b1d-05d8-4455-afc5-d701aed22b7d\",\"obfuscatedCustomerId\":\"A2JSZ6NNUSHRJJ\",\"token\":\"scrumstartsong\"}",
            "stream": {
                "offsetInMilliseconds": 0,
                "expiryTime": "2019-03-11T19:47:01+0000",
                "url": "https://music.amazon.com/my/albums/You+Get+What+You+Give/YOU+GET+WHAT+YOU+GIVE/ZAC+BROWN+BAND?ie=UTF8&albumAsin=B00438BTJ6&playNow=1&trackAsin=B004386MMU",
                "token": "amzn1.as-ct.v1.ThirdPartySdkSpeechlet#ACRI#url#ACRI#{\"directedCustomerId\":\"amzn1.ask.account.AHGMQILIBZCL6YKVYSGTEOJGJ2B7I3FUTXBL7AZWBULBPMOA4CGW7JBRTO7AZXAWVLVDLEB4EP3XRPOZXAUVA64I66QCHGSZ5A3OK4GHP4TR6BOJVAEKXVGD7NTASS6AYD5RDCBS4JS3SH7EFGYBWS34F7TC7GFMDOWRICBA6EYYKISCVKURCUMFTSXXWZDXUVE7NG336KWDJHY\",\"modelKey\":\"amzn1.ask.skill.8e374b1d-05d8-4455-afc5-d701aed22b7d\",\"obfuscatedCustomerId\":\"A2JSZ6NNUSHRJJ\",\"token\":\"scrumstartsong\"}"
            }
        },
        "playBehavior": "REPLACE_ALL"
    }
}

我为 token 尝试了其他(也没有)值。

我已验证是否可以让Alexa播放我在Echo上的歌曲。

最佳答案

我的感觉是您的代码上没有问题!到目前为止,我很高兴,Alexa开发人员控制台模拟器不支持Audio Player指令:(

记录在https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html#requests:

另请参阅我的观点:Alexa Skill AudioPlayer: Console test Support poor support/bugs

关于c# - Alexa Skill C#无法播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49224377/

相关文章:

node.js - Nodejs mp3 流式传输

mysql - 如何通过技能让 Alexa 运行 MySQL 查询

alexa - 在 alexa 技能中显示超链接

c# - 具有由 ASP.NET 构建的 CSS 样式的 HTML 标记是否需要 runat ="server"?

c# - 需要在 C# 中为数字编写正则表达式

c# - Java 是编写音乐 DAW(数字音频工作站)的现实选择吗

iOS同时向多个蓝牙设备播放音频

c# - 双向隐式运算符重载的模式名称和接口(interface)

c# - 使用 Azure 进行桌面应用程序日志

aws-lambda - AWS Lambda - zip 问题 - "errorMessage": "Cannot find module ' ./dist/commonjs/index.js'",