我有一个m3u8提要,我正在寻找一种方法来检测它是否仍在工作或不使用Javascript。当我取到url时,我仍然会得到所有块的列表,但是很久以前就停止了。玩家不玩这个游戏。因此,我想知道是否有一种方法来检查m3u8提要是否还在运行,而无需在播放器上试用。
发布于 2018-12-12 11:23:50
常见的活动流行为是,每隔一秒钟就有一个新段可用,即在播放列表的末尾添加。
所以,您可以做的是加载播放列表一次,然后等待x秒,然后再加载它。如果活动流仍在运行,则播放列表中的最后一个段应该已经更改(即向上移动)。
关于等待的时间:当您最初加载播放列表时,您将在播放列表中看到一个指定最大段持续时间的EXT-X-TARGETDURATION标记。因此,如果我们在重新加载之前等待至少一个目标持续时间,那么必须至少添加一个新段。
示例:
#EXT-X-TARGETDURATION:8侧纹
上面的例子是一个滑动窗口活动流,即播放列表顶部的段退出,EXT-X-MEDIA-SEQUENCE被递增。在这种情况下,检查EXT-X-MEDIA-SEQUENCE更改是否是一个选项。但是,如果播放列表指定了一个EXT-X-PLAYLIST-TYPE of EVENT,那么在前1位EXT-X-MEDIA-SEQUENCE中不会有任何段不发生变化。然而,检查最后一段的方法在任何情况下都有效。
编辑
HLS规范进一步指出:
如果媒体播放列表不包含EXT-X标记,则服务器必须使播放列表文件的新版本可用,其中至少包含一个新的媒体段。它必须相对于以前版本的播放列表文件可用的时间:不早于该时间之后目标持续时间的一半,不迟于目标持续时间的1.5倍。这使得客户端能够有效地利用网络。
因此,实际上,我们必须等待至少1.5倍的目标持续时间,直到我们重新加载。
https://stackoverflow.com/questions/53577307
复制相似问题