我可以将歌曲发送到亚马逊回声设备并播放歌曲。我不知道我要发送什么来在alexa应用程序的播放器或队列屏幕中显示该歌曲,因为它将来到其他音乐应用程序,如saavn,spotify等。如果有任何关于此的链接或信息,请告诉我。
] 1
答案 0 :(得分:0)
查看亚马逊的AudioPlayer Interface Reference。它提供了有关如何使音频接口工作的非常全面的指南。从本质上讲,它归结为在您的响应JSON中返回的指令列表中添加另一个指令。对我来说,这将自动提供音频播放器屏幕。
audio指令的基本版本如下所示:
{
"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
}
}
}
有多种方法可以建立响应,但我发现这种方式对我来说是最容易想象的。