我能够将歌曲发送到亚马逊回声设备并且歌曲正在播放。我不明白我必须发送什么才能在播放器或 Alexa 应用程序的队列屏幕中显示歌曲,因为它正在进入其他音乐应用程序,如 saavn、spotify 等。如果有任何链接或信息,请告诉我这个。
] 1
我能够将歌曲发送到亚马逊回声设备并且歌曲正在播放。我不明白我必须发送什么才能在播放器或 Alexa 应用程序的队列屏幕中显示歌曲,因为它正在进入其他音乐应用程序,如 saavn、spotify 等。如果有任何链接或信息,请告诉我这个。
] 1
查看 Amazon 的AudioPlayer 接口参考。它提供了有关如何使音频接口工作的非常全面的指南。本质上,它归结为将另一个指令添加到您在响应 JSON 中返回的指令列表中。对我来说,这会自动出现音频播放器屏幕。
音频指令的基本版本如下所示:
{
"type": "AudioPlayer.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"token": "Audio Playback",
"url": "http://www.audio.com/this/is/the/url/to/the/audio",
"offsetInMilliseconds": 0
}
}
}
ENQUEUE
将指定的流添加到当前流队列的末尾。键设置应该在offsetInMilliseconds
流中播放多远(以毫秒为单位)。
当您将其嵌套到较大的响应 JSON 中时,它采用以下形式:
{
"version": "1.0",
"sessionAttributes": {},
"response": {
"outputSpeech": {},
"card": {},
"reprompt": {},
"directives": [
{
"type": "AudioPlayer.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"token": "Audio Playback",
"url": "http://www.audio.com/this/is/the/url/to/the/audio",
"offsetInMilliseconds": 0
}
}
}
],
"shouldEndSession": true
}
}
您的音频指令中还有一些其他选项。这些可以在我上面提到的链接中找到。
我发现创建一个可以传入给定值以创建 AudioPlayer 指令 JSON 的函数是最有益的。例如,在 python 中,这可能如下所示:
def build_audio_directive(play_behavior, token, url, offset)
return {
"type": "AudioPlayer.Play",
"playBehavior": play_behavior,
"audioItem": {
"stream": {
"token": token,
"url": url,
"offsetInMilliseconds": offset
}
}
}
有多种方法可以建立响应,但我发现这种方法对我来说是最容易想象的。