PlaybackNearlyFinished 和 PlaybackFinished 几乎同时发生?
PlaybackNearlyFinished and PlaybackFinished occur almost at the same time?
事实证明,有时(不总是顺便说一句,但非常频繁)PlaybackNearlyFinished
和 PlaybackFinished
几乎同时发生。同样令人困惑的是,这两个事件都传达了完全相同的偏移量,代表流的最后:
发生这种情况时,在 PlaybackNearlyFinished 中安排的下一个流不会进行 - 播放刚刚结束。
除非这是 Alexa/Infrastructure 中的错误,否则我不知道如何实现播放列表的播放 - 无法可靠地安排即将播放的曲目...
我可以在我的代码中做些什么来让它运行良好吗?
我正在使用 Echo Dot 2 代,实际位于欧洲,使用 java SDK、AWS Lambda、Dynamo DB。
看起来现在已经解决了 - 为了正确地排队下一个流,需要想出真正独特的流标记。这意味着即使是相同的 file/url 也应该在唯一标记下排队。
在我上面的示例中,我使用了播放列表中曲目的索引作为标记。一旦我像下面这样解决了它,一切就开始像魅力一样工作了:
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);
}
}
希望对大家有所帮助!
事实证明,有时(不总是顺便说一句,但非常频繁)PlaybackNearlyFinished
和 PlaybackFinished
几乎同时发生。同样令人困惑的是,这两个事件都传达了完全相同的偏移量,代表流的最后:
发生这种情况时,在 PlaybackNearlyFinished 中安排的下一个流不会进行 - 播放刚刚结束。
除非这是 Alexa/Infrastructure 中的错误,否则我不知道如何实现播放列表的播放 - 无法可靠地安排即将播放的曲目...
我可以在我的代码中做些什么来让它运行良好吗?
我正在使用 Echo Dot 2 代,实际位于欧洲,使用 java SDK、AWS Lambda、Dynamo DB。
看起来现在已经解决了 - 为了正确地排队下一个流,需要想出真正独特的流标记。这意味着即使是相同的 file/url 也应该在唯一标记下排队。
在我上面的示例中,我使用了播放列表中曲目的索引作为标记。一旦我像下面这样解决了它,一切就开始像魅力一样工作了:
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);
}
}
希望对大家有所帮助!