# 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 ```