Audio 如何使用Alexa按顺序播放音频文件列表?
我现在正在构建一个基于rails后端的Alexa应用程序。到目前为止,通过在启动请求中返回此JSON,我可以非常轻松地播放音频文件:Audio 如何使用Alexa按顺序播放音频文件列表?,audio,alexa,alexa-skills-kit,alexa-skill,Audio,Alexa,Alexa Skills Kit,Alexa Skill,我现在正在构建一个基于rails后端的Alexa应用程序。到目前为止,通过在启动请求中返回此JSON,我可以非常轻松地播放音频文件: { "body": { "version": "1.0", "response": { "outputSpeech": { "type": "PlainText", "text": "Welcome To My App"
{
"body": {
"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Welcome To My App"
},
"directives": [
{
"type": "AudioPlayer.Play",
"playBehavior": "REPLACE_ALL",
"audioItem": {
"stream": {
"token": "12345",
"url": "https://s3.us-east-2.amazonaws.com/my-s3-bucket/songs/audio_files/000/000/008/original/SampleAudio_0.4mb.mp3?1523318953",
"offsetInMilliseconds": 0
}
}
}
],
"shouldEndSession": true
}
}
}
这可以很好地播放s3存储桶中的音频文件。我甚至不知道如何在当前音频文件结束后,或者当我说“Alexa,下一个”时自动播放新的音频文件
根据我收集的信息,我需要使用“排队”游戏行为、令牌和预期的PreviousTokens,以及PlaybackNearlyFinished。然而,我找不到任何好的教程或代码示例来解释如何使用这些东西
PlaybackNearlyFinished是如何发送的?它是从rails后端发送到Alexa还是从Alexa发送到rails后端?我如何回应?如何响应它,使其向队列中添加新的音频文件
如果有人能解释我将如何向队列中添加新的音频文件,请填写我的信息,或指导我阅读一篇教程,说明如何完成此操作
我甚至不知道如何在当前音频文件结束后自动播放新的音频文件
您必须实现Amazon音频播放器方法。这些操作将被自动调用。例如,如果播放结束,将调用onPlaybackNearlyFinished()方法。因此,您必须在这些方法中实现自己的逻辑,以便将下一首歌曲排队。对于下一首歌曲,只需添加一个新的PlayDirectiv作为对onPlaybackNearlyFinished with PlayBehavior.ENQUEUE的响应
或者当我说“Alexa,下一个”
这是一个常规的AMAZON.nextent,您还必须实现自己的逻辑(例如,使用PlayBehavior.REPLACE\u ALL发送随机歌曲作为播放指令)
PlaybackNearlyFinished是如何发送的?它是从rails后端发送到Alexa还是从Alexa发送到rails后端?我如何回应?如何响应它,使其向队列中添加新的音频文件
它是从“Alexa发送到rails后端”的,因此您必须实现所有AudioPlayer方法(在Java中,只需将“implements Speechlet,AudioPlayer”添加到您的类中)。这将提供所有必要的方法(例如onPlaybackNearlyFinished方法),您可以如上所述编写逻辑
请注意,您只能使用PlayDirective对AudioPlayer操作进行响应!!任何输出语音或重复都会导致问题