事实证明,有时(不总是顺便但非常频繁)PlaybackNearlyFinished
和PlaybackFinished
几乎同时发生。同样令人困惑的是,两个事件都传达了完全相同的偏移量,代表了流的最后端:
当发生这种情况时,PlaybackNearlyFinished中安排的下一个流不会 - 播放刚刚结束。
除非这是Alexa / Infrastructure中的错误,否则我无法弄清楚如何为播放列表实现播放 - 没有办法可靠地安排即将播放的曲目......
我的代码中是否可以执行任何操作以使其正常运行?
我正在使用Echo Dot 2 gen。,实际位于欧洲,使用java SDK,AWS Lambda,Dynamo DB。
答案 0 :(得分:1)
现在看来它已被弄清楚 - 为了正确排队下一个流,需要提供真正独特的流令牌。这意味着即使是相同的文件/网址也应该在唯一令牌下排队。
在上面的示例中,我使用播放列表中的曲目索引作为标记。一旦我像下面一样解决了它,一切都开始像魅力一样:
import org.apache.commons.lang3.RandomStringUtils;
public class TokenService {
public String createToken(int playbackPosition) {
String suffix = RandomStringUtils.randomAlphanumeric(16);
return String.valueOf(playbackPosition) + ":" + suffix;
}
public int tokenToPlaybackIndex(String token) {
String positionStr = token.split(":")[0];
return Integer.valueOf(positionStr);
}
}
希望它有所帮助!