【uni-player】一款好用的前端H5音视频插件

文章讲述了作者开发了一个名为uni-player的视频播放器插件,支持m3u8和FLV协议,具有自动播放、清晰度切换、直播模式等功能,并借鉴了Bilibili的界面风格。读者可以通过Yarn或npm安装并配置该插件用于公司视频网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

这阵子公司需要做一个视频网站,需要支持m3u8协议的视频播放。涉及到了视频的播放和直播场景。
google了一大圈,感觉没有什么好的合适的视频播放器的插件。大名鼎鼎的videojs虽然可以支持m3u8的视频但是在样式方面差强人意。思来想去决定自己花几天的时间撸一个视频播放器插件开源出来。样式方面我比较喜欢bilibili的风格,所以借鉴了一下哔哩哔哩网页端视频播放器的风格。索性做出来给产品看的时候产品表示很满意。

那么uni-player有什么特点呢?

  • 支持m3u8协议,并且自动解析视频地址里各清晰度并依据网络情况自动播放最适合的清晰度播放,也可以手动调整
  • 支持flv协议
  • 可以配置主题颜色
  • 如果你是普通的mp4视频,可以配置url为一个list,也可以实现不同清晰度切换的功能(前提是你有不同清晰度的视频资源)
  • 可以设置当前视频播放模式为直播模式

文档

安装

yarn add uni-player
or
npm i uni-player

使用

const player = new UniPlayer({
  container: 'html element',
  url: 'video link address'
})
详细配置(UniPlayerConfig)
参数类型描述
containerstringcss selector 播放器容器元素
urlstring or Array<{ sources: string; tag: string; [active]: boolean }>视频地址,可以是数组 , active为选中当前播放的视频源,如未设置则为list中的第一个
startTimenumber从何时开始播放(秒)
autoplayboolean是否自动播放,关于 autoplay 属性设置问题请参考
isHlsboolean是否为hls视频
HlsHls如果 isHlstrue,该属性必传(hls.js)
isFlvboolean是否为flv视频
FlvFlv如果 isFlvtrue,该属性必传(flv.js)
liveboolean是否是直播模式
themestring主题颜色

方法

名称描述
player.play()播放视频
player.pause()暂停播放
player.requestFullScreen()全屏播放
player.cancelFullScreen()取消全屏播放
player.skipTo(time: number)跳转至指定时间
player.setVolume(value: number)设置音量(0-100)
player.destory()销毁播放器
player.reload(config: Partial<UniPlayerConfig>)重新加载播放器

事件

player.on('eventName', function (...args) {})
名称参数描述
ready播放器创建完成时调用
playStateChange(isPlay: boolean)播放状态变化回调
fullScreenStateChange(isFullScreen: boolean)全屏状态变化
playing播放中触发
waiting视频等待中触发
destroyed播放器被摧毁后触发
finished视频播放完成触发
error视频播放错误

github地址:uni-player

如果你觉得好用,如果帮助了你的话,请不要吝啬你的star哦~~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值