zwplayer 方法说明
1. 播放控制
1.1 play
play(url, isLive, useOldFlv);
说明:启动播放。调用此方法将开始一个新的播放会话。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| url | string/object | 可选 | 媒体流URL地址/本地文件对象,参看url参数说明 |
| isLive | boolean | 可选 | 指定媒体流是否为直播流 |
| useOldFlv | boolean | 可选 | 是否使用旧的Flv播放接口 |
返回值:无
详细说明:
- 如果播放器当前正在播放状态,调用此方法将重新打开媒体从头开始播放
- 如果播放器正在播放直播流,调用此方法将关闭当前播放重新建立新连接
- 所有参数都可以缺省,如果不带任何参数调用,
zwplayer会用内部已存在的原始参数启动播放 - 如果在调用构造函数时没有传递url参数且从未调用过带url参数的play方法,则play调用将失败
1.2 pause
pause();
说明:暂停当前的播放。
参数:无
返回值:无
详细说明:暂停操作不会清除播放器内部任何数据。
1.3 stop
stop();
说明:停止正在进行的播放。
参数:无
返回值:无
详细说明:
- 停止播放与暂停播放不同,停止播放将清除播放器内部所有数据,将播放器置为初始状态
- 此播放器对象后续仍可调用play来启动新的播放会话
1.4 resume
resume();
说明:恢复播放。
参数:无
返回值:无
详细说明:
- 如果播放器处于暂停状态,则从当前位置继续播放
- 如果播放器处于停止状态,则开启一个新的播放会话
1.5 setplaystate
setplaystate(bPlaying);
说明:设置播放状态。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| bPlaying | boolean | 必选 | true:设置为正在播放,false:设置为暂停播放 |
返回值:无
播放进度
2.1 getDuration
getDuration();
说明:获取播放器当前媒体的时间长度。
参数:无
返回值:
- 类型:number(浮点数)
- 说明:时间长度,单位为秒
- 特殊情况:
- 如果播放器当前没有打开媒体,返回 undefined
- 如果播放的媒体不能获取时间长度,返回 Infinity
2.2 getCurrentTime
getCurrentTime();
说明:获取播放器当前媒体的播放位置。
参数:无
返回值:
- 类型:number(浮点数)
- 说明:播放位置,单位为秒
2.3 seekTime
seekTime(time);
说明:定位播放时间。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| time | number | 必选 | 要定位的时间,单位是秒(浮点数) |
返回值:无
限制:仅对点播节目有效
3. 音量、全屏与截图
3.1 setMuted
setMuted(muted);
说明:设置静音状态。传入 true 静音,传入 false 取消静音并恢复之前的音量。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| muted | boolean | 必选 | true:静音;false:取消静音 |
返回值:无
详细说明:
- 取消静音时会自动恢复静音前记录的音量值
- 取消静音时若浏览器音频上下文(AudioContext)因自动播放策略处于挂起状态,会尝试恢复,确保有声播放
- 调用后控制栏静音按钮的状态会同步更新
- 与用户点击播放器静音按钮效果一致
3.2 setVolume
setVolume(volume);
说明:设置播放音量。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| volume | number | 必选 | 音量值,范围 0~1(0 为静音,1 为最大音量) |
返回值:无
详细说明:
- 音量同时作用于视频原声与外挂配音
- 若启用了音量增强(volume-boost),该值作为基础音量参与计算
3.3 setFullscreen
setFullscreen(isFullscreen);
说明:进入或退出浏览器全屏。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| isFullscreen | boolean | 必选 | true:进入全屏;false:退出全屏 |
返回值:无
详细说明:
- 调用浏览器原生 Fullscreen API
- 当配置了
iosWebFullscreen且运行于 iPhone 时,会自动改用网页全屏(setFullscreenWin),避免 iOS 原生播放器导致水印、字幕、弹幕丢失 - 可不带按钮参数直接调用,用于程序化控制
- 部分移动端浏览器要求全屏切换由用户手势(点击)触发,程序化调用可能被拦截
3.4 doSnapshot
doSnapshot();
说明:截取当前视频画面并下载为图片。
参数:无
返回值:无
详细说明:
- 以当前帧画面生成截图,格式为 JPG(质量 0.99)
- 自动触发下载,文件名格式为
SNAP-时间戳.jpg(时间戳精确到毫秒) - 同时尝试将截图复制到系统剪贴板
- 受 CORS 限制的跨域视频源无法截图(浏览器安全策略)
- 当前无视频画面时(如纯音频模式或尚未开始播放),将不执行截图
4. 弹幕功能
4.1 setEnableDanmu
setEnableDanmu(bEnable);
说明:打开或关闭弹幕功能。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| bEnable | boolean | 必选 | true:开启弹幕,false:关闭弹幕 |
返回值:无
4.2 appendDanmu
appendDanmu(danmuObj, setting);
说明:添加弹幕。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| danmuObj | object | 必选 | 弹幕数据对象,包含弹幕内容和显示属性 |
| setting | object | 可选 | 弹幕设置 |
返回值:无
详细说明:
zwplayer内部实现了弹幕渲染器,获取到一条弹幕后,调用此方法可将弹幕显示在视频画面上。- 弹幕通常是由网络弹幕服务器转发过来的,
zwplayer没有绑定任何弹幕转发服务器,亦没有指定用何种弹幕传输协议,用户用自己的办法获取到弹幕后,调用此函数在播放器上显示。 - 弹幕对象
danmuObj的格式参看 弹幕对象格式
4.3 buildDanmuControlbar
buildDanmuControlbar(parentId, className);
说明:创建弹幕输入控制工具条。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| parentId | string | 可选 | 容纳控制条的父元素ID,DIV元素 |
| className | string | 可选 | 添加到弹幕控制条顶层DIV元素的css类 |
返回值:无 功能特点:
- 提供完整的弹幕交互界面,包括输入弹幕、表情、设置弹幕与开关弹幕,重用这个UI可以节约重新“造轮子”的时间,强烈推荐使用。
- 采用独立UI组件设计,可灵活部署在页面任意位置
- 避免因播放器容器空间不足导致的显示问题
- 支持样式自定义,方便与不同页面风格集成
详细说明:
- 如果parentId缺省或不存在,弹幕控制条将被创建在播放器主控制工具条内部,如果播放器主控制条的空间太小,弹幕输入控制条将不显示。
- 弹幕控制条已有
zwp_danmu-controlbar类,可通过className参数进一步控制样式 - 必须调用此函数,
zwplayer才能在全屏幕状态下输入弹幕 - 要详细了解弹幕详细信息,请参见 弹幕设置。
5. 字幕
5.1 addSubtitle
addSubtitle(subtitleUrl, pos, title);
说明:添加字幕。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| subtitleUrl | string/object | 必选 | 字幕文件的URL/本地文件对象 |
| pos | string | 必选 | 字幕位置(‘1’或’2’) |
| title | string | 可选 | 字幕的可读名称,方便用户选择 |
返回值:无
详细说明:
- 支持字幕格式:srt、vtt、json、bcc
- 字幕位置只支持’1’(第一字幕)和’2’(第二字幕),输入其它值无法加载
zwplayer支持同时显示两个字幕(双字幕)- 要详细了解字幕设置,请参见 字幕设置。
5.2 removeSubtitle
removeSubtitle();
说明:移除所有字幕。
参数:无
返回值:无
详细说明:调用此函数将已加载的所有字幕从播放器里移除。
6. 歌词(音乐模式)
仅在音乐模式下可用:
mode: 'music',或mode: 'auto'自动判定为音频时。其他模式下player.setLyrics为undefined。歌词的初始化配置、LRC 格式、逐字同步等完整说明参见 音乐模式 · 歌词。
6.1 setLyrics
setLyrics(lrc);
说明:运行时动态替换或清除歌词。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| lrc | string / string[] / null | 必选 | LRC 文本、LRC 行数组、歌词文件 URL,或 null/空值清除歌词 |
返回值:无
详细说明:
- 传 LRC 文本(含
[mm:ss]时间戳)→ 直接解析渲染 - 传 LRC 行数组(如
['[00:01.00]第一句', '[00:03.50]第二句'])→ 合并后解析 - 传不含时间戳的字符串 → 视为歌词文件 URL 异步加载;成功触发
onLyricsLoaded回调,失败触发onLyricsError回调 - 传 null / undefined / 空字符串 → 清除当前歌词
- 替换后歌词高亮与逐字同步会自动跟随新的时间轴
- 歌词时间轴的手动偏移(±0.5s)由音乐面板内按钮控制,非本方法参数
7. 音轨(配音)
与字幕一致,音轨的切换、选择等交互由播放器 CC 菜单统一处理,此处仅提供添加与清理两个接口。完整使用说明参见 音轨设置指南。
7.1 addAudioTrack
addAudioTrack(audioUrl, language, label);
说明:添加一条外挂配音音轨。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| audioUrl | string | 必选 | 外挂音频文件 URL(mp3/m4a/aac/ogg/wav) |
| language | string | 可选 | 语言代码(如 ja、zh、en) |
| label | string | 可选 | 显示名称,优先级高于 language |
返回值:新增音轨的 id(number),失败返回 null。
详细说明:添加后 CC 菜单中的配音面板会自动刷新,用户可在界面中自行选择切换。也可在初始化时通过 audioTracks 配置项批量挂载。
7.2 clearAudioTracks
clearAudioTracks();
说明:清空所有外挂配音,回到原声。
参数:无
返回值:无
详细说明:调用此函数将已挂载的所有外挂配音从播放器里移除,并自动切回视频原声音轨。
8. 章节
8.1 setChapters
setChapters(chapters);
说明:设置章节信息。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| chapters | string/array/object/null | 必选 | 章节文件url、章节内容文本串或章节列表对象或章节本地文件对象 |
返回值:无
详细说明:
- 如果
chapters参数为null,将移除当前章节信息 - 支持多种格式:章节文件url、章节内容文本串(js string)或已分析好的章节列表对象(js数组)
- 要详细了解章节信息加载,请参见 章节设置
9. 状态管理
9.1 notifyResize
notifyResize(width, height);
说明:播放器尺寸变化时通知播放器。
| 参数名 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| width | string | 必选 | 新宽度(像素或百分比) |
| height | string | 必选 | 新高度(像素或百分比) |
返回值:无
推荐做法:将播放器的playerElm参数关联的DIV元素style设置为"width:100%;height:100%",这样播放器可随父元素尺寸自动变化,而无需调用此方法。
9.2 destroy
destroy();
说明:销毁播放器。
参数:无
返回值:无
详细说明:
- 调用后播放器将停止播放当前流,并彻底从内存中清除所有内容
- 后续不能再使用该播放器对象调用任何方法