ZWPlayer 播放列表功能使用说明

1. 功能概述

ZWPlayer 内置播放列表功能,支持多视频有序播放。用户可以通过 ZWMAP 协议的播放列表类型加载在线列表,也可以直接拖拽本地文件自动生成列表。播放列表面板提供搜索、收藏、历史记录等管理能力,适用于系列课程、剧集播放、培训视频等连续观看场景。

2. 加载播放列表

2.1 通过 ZWMAP 协议加载

播放列表采用 ZWMAP 协议格式(zwp_type: "playlist"),支持一级或多级分组结构。通过 url 参数传入播放列表 JSON 地址即可加载:

new ZWPlayer({
    playerElm: 'mse',
    url: 'https://example.com/playlist.json'
});

播放器会自动识别 JSON 中的 ZWMAP 协议头并按播放列表模式加载。

一级菜单(单分组): 当播放列表只有一个分组时,面板自动切换为单栏模式,直接显示所有视频项。

两级菜单(多分组): 当播放列表包含多个分组时,面板显示为左右双栏——左侧为分组列表,右侧为当前分组下的视频项。点击左侧分组即可切换。

2.2 通过本地文件拖拽

开启 localPlayback 后,用户可以直接将视频文件拖拽到播放器区域:

  • 拖入多个视频文件: 自动创建本地播放列表,按文件名排序
  • 拖入单个视频文件: 追加到已有列表,或创建新列表
  • 拖入播放列表文件: 支持 .json 格式,直接替换当前列表
  • 自动关联附属文件: 与视频同名字幕(.srt/.vtt/.bcc)、章节(.json)、标注等文件会自动匹配加载

2.3 自动播放与连播逻辑

当播放器设置 autoplay: true 时:

  • 加载在线播放列表后,自动播放第一个视频
  • 拖拽本地文件后,如果当前没有正在播放的内容,自动开始播放
  • 当前视频播放结束后,自动播放列表中的下一个视频

播放器提供四种播放模式,通过播放列表面板标题栏的播放模式按钮切换:

  • 连播(默认):当前视频播完后自动播放下一个,列表播完即停
  • 列表循环:当前视频播完后自动播放下一个,最后一项播完自动回到第一项
  • 单曲循环:当前视频反复播放,不切换到下一个
  • 播放一次:当前视频播完后停止,不自动播放下一个

此外,播放器控制条上的 循环开关 等效于"单曲循环"模式——开启时当前视频反复播放,不切换下一个。

3. 播放列表面板功能

3.1 列表搜索

面板顶部提供搜索框,输入关键词即可实时搜索:

  • 搜索范围覆盖所有分组中的视频名称
  • 搜索时自动切换为单栏模式,跨分组显示匹配结果
  • 匹配文字高亮显示
  • 清除搜索关键词恢复原始分组视图

3.2 收藏功能

  • 点击视频项右侧的星形图标即可收藏/取消收藏
  • 点击面板标题栏的收藏按钮,可筛选显示所有已收藏的视频
  • 收藏数据保存在浏览器本地,刷新页面后仍然保留

3.3 历史记录

  • 点击面板标题栏的时钟按钮,查看最近播放过的视频
  • 最多保留 100 条历史记录,按播放时间倒序排列
  • 可一键清除全部历史记录

3.4 其他操作

  • 刷新列表: 在线播放列表支持刷新重新加载(远程列表显示刷新按钮)
  • 清空列表: 本地文件创建的播放列表支持一键清空(本地列表显示清空按钮)
  • 删除单项: 本地列表中每个视频项右侧有删除按钮,可逐个移除
  • 播放进度: 每个视频项上显示进度条,已播放完成的项显示完成标记
  • 断点续播: 关闭页面后再次打开同一视频,自动从上次观看位置继续播放

4. 控制栏导航

加载播放列表后,播放器控制栏会自动出现上/下一个按钮:

  • 点击 下一个 按钮:播放列表中的下一个视频
  • 点击 上一个 按钮:播放列表中的上一个视频
  • 在收藏模式下,上/下按钮仅在收藏的视频之间切换

5. 快捷键

快捷键 功能
Q 打开/关闭播放列表面板
ESC 关闭播放列表面板(在搜索框聚焦时生效)
[ 播放上一个视频
] 播放下一个视频
EnterSpace 在分组列表中选中当前分组

6. 相关配置

参数 位置 类型 默认值 说明
autoplay 播放器初始化参数 boolean true 是否自动播放
localPlayback 播放器初始化参数 boolean false 是否启用本地文件拖拽功能

关于播放列表 JSON 的完整字段定义,请参考 ZWMAP 播放列表规范

7. 拖拽加载:一站式视频增强体验

ZWPlayer 的播放列表功能不仅支持视频文件的批量播放,还能通过 拖拽方式 自动关联多种辅助资源文件,实现对视频教学内容的深度揭示。这种方式特别适用于教育课程、企业培训等需要丰富辅助信息的应用场景。

7.1 支持的辅助资源类型

以下类型的文件均可与视频文件一起拖拽到播放器中,播放器会自动识别并关联到对应的视频:

资源类型 文件后缀 匹配规则 功能说明
字幕 .srt.vtt.webvtt.bcc.json 视频名_subtitle 或同名 为视频添加多语言字幕,支持 SRT、VTT、BCC 等常见格式
章节 .json.vtt.webvtt 视频名_chapter 或同名 在进度条上显示章节标记,方便快速定位内容段落
缩略图预览 .json 视频名_thumbnail 或同名 鼠标悬停进度条时显示对应时间点的预览画面
选集预览图 .jpg.jpeg.png.webp 由缩略图 JSON 引用 播放列表面板中每个视频项的封面预览图
交互标注 .json 视频名_annotation 或同名 在视频画面上叠加可交互的热区、按钮、测验等标注
水印 .json 视频名_watermark视频名_wm 在视频画面上叠加品牌 Logo、文字水印或防录屏动态水印

7.2 文件关联机制

播放器通过 文件名匹配 自动将辅助资源与视频建立关联。匹配规则如下:

命名规则: 辅助资源文件的名称以视频文件名为基础,加上对应的功能后缀。分隔符支持 _-. 三种形式。

示例: 假设视频文件名为 lesson1.mp4,则以下文件会自动关联:

lesson1.mp4                          ← 视频文件
lesson1_chapter.json                 ← 章节数据
lesson1_subtitle.srt                 ← 字幕文件
lesson1_thumbnail.json               ← 进度条缩略图
lesson1_annotation.json              ← 交互标注
lesson1_watermark.json               ← 水印配置
lesson1.jpg                          ← 选集封面预览图

多视频批量拖拽时: 播放器会按文件名逐一匹配,自动将辅助资源分配给对应的视频。例如:

lesson1.mp4, lesson1_chapter.json, lesson1_subtitle.srt
lesson2.mp4, lesson2_chapter.json, lesson2_subtitle.srt

拖入以上 6 个文件后,播放器会自动创建包含 2 个视频的播放列表,每个视频分别关联各自的章节和字幕。

7.3 操作流程

  1. 准备素材:按照命名规则准备好视频文件和对应的辅助资源文件
  2. 打开播放器:访问 在线播放器,开启本地播放功能
  3. 拖拽加载:将所有文件一起拖拽到播放器窗口中,播放器自动完成识别、关联和加载
  4. 开始观看:视频播放时,字幕、章节标记、缩略图预览、交互标注等增强功能自动生效

7.4 应用场景

这种拖拽加载方式非常适合以下场景:

  • 教育培训:将课程视频与章节目录、字幕、随堂测验标注一起加载,学员可以快速定位知识点、参与互动答题
  • 企业培训:培训视频配合章节和交互标注,实现培训内容的结构化展示和学习跟踪
  • 内容审核:将待审视频与水印配置一起加载,确认水印效果和覆盖范围
  • 本地演示:无需搭建服务器,直接拖拽本地文件即可展示完整的增强视频播放效果

关于本地播放的完整功能说明(格式支持、文件拖拽、片段截取等),请参阅 本地播放使用说明