Skip to content

快速开始

安装

通过安装章节,大家应该知道各种安装方式,现在假如我们是基于 ES Module 引入。

sh
$ npm install qier-player
sh
$ pnpm install qier-player
sh
$ yarn add qier-player

开始使用

js
import Player from 'qier-player'

const player = new Player({
  src: 'https://vortesnail.github.io/qier-player/test-video_1080p.mp4',
})

player.mount(document.body)

首先我们导入 Player,创建实例,接着传入视频地址,调用 mount 方法将它挂载到 body 元素下。

mount 方法可以将播放器实际产生的 DOM 元素挂载到指定 DOM 元素下,它接收一个参数,可以是一个字符串(选择器)或一个实际的 DOM 元素。当是字符串时,内部实现通过 document.querySelector 方法寻找到实际的 DOM 元素。

获取相关 DOM 元素

在执行 mount 方法后,可以通过实例访问内部的成员,以下是可能被经常访问的:

  • 被挂载的元素:通过 container 可访问。
  • 播放器根元素:通过 el 可访问。
  • video:通过 video 可访问。
js
import Player from 'qier-player'

const player = new Player({
  src: 'https://vortesnail.github.io/qier-player/test-video_1080p.mp4',
})

player.mount(document.body)

console.log(player.container) // document.body
console.log(player.el)
console.log(player.video)

实例属性和方法

在我们新建实例 player 之后,有许多成员属性是可以供我们读取的。

比如以下代码可实现自动播放,10 秒后自动暂停。

js
player.muted = true // 静音
player.play() // 播放

setTimeout(() => {
  player.pause() // 暂停
}, 10000)

如果我们在控制台打印 player 实例,展开后你会发现有许多的成员属性,详情请点击属性方法查看。

事件监听

player 有下面 5 个事件相关的方法。

方法描述
emit(evt: string, ...args: any[])派发事件
on(evt: string, fn?: Function)监听事件
once(evt: string, fn?: Function)监听事件,回调函数仅调用一次即注销
off(evt: string, fn?: Function)注销事件监听
removeAllListeners(evt?: string)注销所有事件监听

你可以使用这些方法监听内置事件。

js
import Player, { EVENT } form 'qier-player'

const player = new Player()

player.on(EVENT.PLAY, () => {
  console.log('开始播放')
})

EVENT.PLAY 本质上就是一个字符串,采用大驼峰命名法为 Play

你也可以自定义监听事件。

js
import Player, { EVENT } form 'qier-player'

const player = new Player()

// 派发事件
player.emit('CustomEvent')
// 监听事件并执行回调函数
player.on('CustomEvent', () => {
  console.log('自定义事件已触发')
})

更多内置事件请查看事件

销毁

player 及所有组件都实现了 Dispose 接口,也就是拥有 dispose 方法,调用该方法将会销毁该对象及其 DOM 元素。

js
player.mount(document.body)
// 5 秒后销毁 player 及其 DOM 元素
setTimeout(() => player.dispose(), 5000)

多层级

该播放器有 6 个不同功能的层级组成,每个层级有自己的 z-index

层级z-indx描述
video 视频元素-video 元素没有设置 z-index
poster 海报10视频海报
loading 加载中20视频加载时出现的加载中指示器元素
controller 控制条30视频底部控制条
menu 右键菜单40右键视频元素弹出的菜单
toast 提示框50提示框

除了 video 元素,其它的功能组件都是采用绝对定位,在后续提供插件功能之后,开发者可以自己决定将 z-index 设置合适的数值,以避免不必要的遮挡。

问题 & 新功能

如果你遇到 BUG、想要新功能或者有使用上的问题,欢迎发起 issue

基于 MIT 许可发布