如何从alexa app中的play指令返回应用程序?

时间:2017-01-31 07:34:17

标签: php alexa alexa-skills-kit alexa-skill alexa-voice-service

我正在开发一个音频流的应用程序。如果我说alexa为这位艺术家播放歌曲,alexa正在播放所有歌曲。但是不是在聆听之间切换到另一位艺术家。 Alexa正在为艺术家完成所有歌曲然后停止然后我需要再次启动应用程序以收听另一位艺术家的歌曲。如何在歌曲之间呼唤另一位艺术家?

这是我对第一首歌的编码

$speech     = "playing songs of $artistName";

$card = '"card": {
              "type": "Simple",
              "title": "Play Audio",
              "content": ""
        }';
$response = '{
        "version" : "1.0",
        "response" : {
            "outputSpeech": {
              "type": "PlainText",
              "text": "'.$speech.'"
            },
            '.$card.',
            "directives": [
              {
                "type": "AudioPlayer.Play",
                "playBehavior": "REPLACE_ALL",
                "audioItem": {
                  "stream": {
                "token": "FirstSong",
                "url": "myUrl",
                "offsetInMilliseconds": 0
                  }
                }
              }
            ],
            "shouldEndSession" : true
        }
    }';

  echo $response;

然后通过将playBehaviour替换为ENQUEUE将音频添加到其中。歌曲正在增加,每首歌曲都能正常播放,但在任何时候,如果我说任何与我的应用程序相关的命令.. alexa没有响应,它实际上就像离开我的应用程序,因为我必须启动应用程序再次播放一首歌,让alexa与我的应用程序一起工作。

2 个答案:

答案 0 :(得分:1)

您需要处理here所述的音频播放器事件。具体来说,在AudioPlayer.PlaybackNearlyFinished事件上,您可以将下一个音频文件排入队列。请注意,还应实施许多其他事件以获得适当的用户体验。

答案 1 :(得分:0)

您现在可以使用ASK Music Skill API来执行此操作,该功能允许您创建管理自己的音乐库的技能。