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();

说明:销毁播放器。

参数:无

返回值:无

详细说明:

  • 调用后播放器将停止播放当前流,并彻底从内存中清除所有内容
  • 后续不能再使用该播放器对象调用任何方法