Audio 在Lambda中预加载MP3音频URL(Alexa Skill)

Audio 在Lambda中预加载MP3音频URL(Alexa Skill),audio,https,aws-lambda,alexa-skills-kit,Audio,Https,Aws Lambda,Alexa Skills Kit,使用这个,我正在研究一个alexa技巧,它可以播放一系列简短的mp3文件。触发音频的代码如下所示: this.response.audioPlayerPlay('REPLACE_ALL', mp3HttpsUrl, mp3HttpsUrl, null, 0); (功能文档) 这将在PlaybackNearlyFinishedaudio事件处理程序中进一步调用,以排队等待下一个音频文件URL 它工作正常,但在音频播放之间大约有3~4秒的间隔。我想减少差距,并有尽可能接近不间断播放 在浏览器设置中

使用这个,我正在研究一个alexa技巧,它可以播放一系列简短的mp3文件。触发音频的代码如下所示:

this.response.audioPlayerPlay('REPLACE_ALL', mp3HttpsUrl, mp3HttpsUrl, null, 0);
(功能文档)

这将在
PlaybackNearlyFinished
audio事件处理程序中进一步调用,以排队等待下一个音频文件URL

它工作正常,但在音频播放之间大约有3~4秒的间隔。我想减少差距,并有尽可能接近不间断播放

在浏览器设置中,这将通过在播放时间到达之前预加载到缓存来实现;当URL最终被调用播放时,浏览器只从本地存储播放它,提供几乎没有延迟的体验


如何在alexa lambda函数中实现这一点?如何预加载“on-deck”URL,使其最终能够无间隙播放?

在audioatream play命令中:将URL传递给包含mp3链接的m3u播放列表

这样,一个json包就可以发送到Alexa。还要注意,到m3u的超链接必须是https

我在Alexa文档中看到它支持播放列表

关键是,我相信您将收到播放列表中每个项目的接近完成的事件

如果你的东西是数据库驱动的,只需创建一个CGI,返回一个标准文本html头,你就可以动态创建你的m3u,基于你作为URL的一部分发送的令牌或唯一信息:

https://wackydimain.com/myscripts/dynamic_m3u.cgi?token=1234

这并不能回答这个问题。一旦你有足够的钱,你将能够;相反@Rafael虽然这种语言很难理解,但这里肯定有答案。我很欣赏这个答案,我已经尝试过使用单个m3u文件实现您所描述的。问题在于m3u数据包含音频文件URL列表,而不是音频本身。即使使用单个m3u文件,我的测试表明,指定的mp3文件在被命令开始播放之前,仍然不会从服务器加载。(即在播放前一首曲目时,它们不会开始预加载,因此我们仍然会得到缓冲区延迟。)