事件播放列表由值为 EVENT 的 EXT-X-PLAYLIST-TYPE 标记指定。它最初没有 EXT-X-ENDLIST 标签,表示新的媒体文件将在可用时添加到播放列表中。
以下代码显示了在会话开始时显示的事件播放列表的示例:
#EXTM3U
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.00,
fileSequence0.ts
#EXTINF:10.0,
fileSequence1.ts
#EXTINF:10.0,
fileSequence2.ts
#EXTINF:10.0,
fileSequence3.ts
#EXTINF:10.0,
fileSequence4.ts
以下是事件播放列表示例中使用的标记:
EXTM3U:表示播放列表是扩展的 M3U 文件。这种类型的文件与基本的 M3U 文件区分开来,方法是将第一行的标签更改为 EXTM3U。所有 HLS 播放列表都必须以此标记开头。
EXT-X-PLAYLIST-TYPE:提供适用于整个播放列表文件的可变性信息。此标记可能包含事件或 VOD 的值。如果标记存在且值为 EVENT,则服务器不得更改或删除播放列表文件的任何部分(尽管它可能会向其附加行)。如果标签存在且值为 VOD,则播放列表文件不得更改。
EXT-X-TARGETDURATION:指定最长媒体文件持续时间。
EXT-X 版本:指示播放列表文件的兼容版本。播放列表媒体及其服务器必须符合定义该协议版本的 HTTP 实时流规范的最新版本的 IETF 互联网草案的所有规定。
EXT-X-MEDIA-SEQUENCE:指示播放列表文件中显示的第一个 URL 的序列号。播放列表中的每个媒体文件 URL 都有一个唯一的整数序列号。URL 的序列号比其前面的 URL 的序列号高 1。媒体序列号与文件名无关。
EXTINF:描述由其后 URL 标识的媒体文件的记录标记。每个媒体文件 URL 前面必须有一个 EXTINF 标记。此标记包含一个持续时间属性,该属性是采用十进制位置表示法的整数或浮点数,用于指定媒体段的持续时间(以秒为单位)。此值必须小于或等于目标持续时间。
注意
始终使用浮点 EXTINF 持续时间(在协议版本 3 中支持)。这允许客户端在流中查找时最大限度地减少舍入误差。
使用 EVENT 标签时,我们无法从播放列表中删除任何内容;我们只能将新段附加到文件末尾。新段将添加到文件末尾,直到事件结束,此时将附加 EXT-X-ENDLIST 标记。以下示例显示了使用新媒体 URI 更新且事件结束后的同一播放列表:
#EXTM3U
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
fileSequence0.ts
#EXTINF:10.0,
fileSequence1.ts
#EXTINF:10.0,
fileSequence2.ts
#EXTINF:10.0,
fileSequence3.ts
#EXTINF:10.0,
fileSequence4.ts
// List of files between 4 and 120 go here.
#EXTINF:10.0,
fileSequence120.ts
#EXTINF:10.0,
fileSequence121.ts
#EXT-X-ENDLIST
当我们希望允许用户搜索事件中的任何点(例如音乐会或体育赛事)时,通常使用事件播放列表。