# xt-video一款简单好用的视频播放器组件
## 简介
当前仅支持H5版本,后续会不断更新迭代。如果有什么需求,可在评论区留言。发布该版本主要是为了公司项目使用。
## 基本用法
```html
```
## props
| 属性名 | 类型 | 默认值 | 说明 |
|:-:|:-:|:-:|:-:|
| videoId | String | | 必填,视频唯一id |
| width | String | 100% | 视频宽度,默认100% |
| height | String | 400rpx | 视频高度,默认422rpx |
| src | String | | 视频播放地址 |
| poster | String | | 视频封面 |
| autoplay | Boolean | false | 是否自动播放,默认false,由于浏览器限制,如果想要自动播放时,muted也要设置为true |
| loop | Boolean | false | 是否循环播放视频 |
| muted | Boolean | false | 是否静音播放 |
| initialTime | Number | 0 | 指定视频初始播放位置,单位秒(s) |
| duration | Number | | 指定视频总时长,单位秒(s) |
| activeColor | String | #03A3F8 | 进度条选中颜色 |
| title | String | | 视频标题 |
| customFullscreen | Boolean | false | 是否自定义视频全屏功能 |
| ratios | Array | [] | 多分辨率视频播放数组,对象数组内容详见下方 |
| ratioDefaultId | [String, Number] | null | 设置默认播放的分辨率id,如果设置了该属性,则src属性必须为对应分辨率id的视频地址 |
| episodes | Array | null | 选集数组,对象数组内容详见下方 |
| epiDefaultId | [String, Number] | null | 设置默认播放第几集,在设置默认播放src时,也需要设置默认播放第几集的id |
| vipBgColor | String | #FF5345 | 设置集数时,vip标签的背景色 |
| vipFontColor | String | #FFFFFF | 设置集数时,vip标签的文字颜色 |
| navHeight | Number | 44,单位px | 上导航的高度,用于视频全屏时,如果存在导航栏,导致选集弹框展示不全问题 |
| showSpeed | Boolean | false | 是否显示倍速播放按钮 |
| speeds | Array | 具体数组见下方 | 设置倍速播放,支持的倍率有 0.5/0.8/1.0/1.25/1.5。微信基础库2.6.3 起支持 2.0 倍速 |
### 属性speeds数组的默认值
```js
[
{ rate: 0.5, name: '0.5x' },
{ rate: 0.8, name: '0.8x' },
{ rate: 1.0, name: '1.0x' },
{ rate: 1.25, name: '1.25x' },
{ rate: 1.5, name: '1.5x' },
{ rate: 2.0, name: '2.0x' }
]
```
### 属性ratios为一个对象数组,其有效值如下:
| 属性名 | 类型 | 默认值 | 说明 |
|:-:|:-:|:-:|:-:|
| id | [String, Number] | | 必填,分辨率的唯一id |
| url | String | | 不同分辨率的视频地址 |
| name | String | | 必填,分辨率名称,例如:标清 |
### 属性episodes为一个对象数组,其有效值如下:
| 属性名 | 类型 | 默认值 | 说明 |
|:-:|:-:|:-:|:-:|
| id | [String, Number] | | 必填,集数的唯一id |
| url | String | | 不同集数的视频地址 |
| name | String | | 必填,集数名称,例如:1/第一集等 |
| isVip | String | | 是否是vip |
### 注意:
分辨率和集数的url都不是必填项,根据你们后端提供的视频地址来自己确定即可。有可能需要前端自己拼写不同分辨率,不同集数的视频地址。
## 事件
| 事件名 | 类型 | 说明 |
|:-:|:-:|:-:|
| @onFullscreen | Function | customFullscreen为true时生效,自定义全屏事件,返回Boolean,是否全屏 |
| @onExitFullscreen | Function | customFullscreen为true时生效,自定义退出全屏事件,返回Boolean,是否全屏 |
| @onChangeRatio | Function | 切换分辨率时的回调,返回当前分辨率对象 |
| @onChangeEpi | Function | 切换集数时的回调,返回当前第几集对象 |
## 方法,通过$refs进行调用
| 方法名 | 说明 | 参数 |
|:-:|:-:|:-:|
| xtVideoReload | 改变视频地址后,重新加载视频 | 接收一个对象,对象属性{url: String,要切换的视频地址, startTime: Number,视频播放的初始时间}均为非必填 |
## 示例代码:
```vue
```