vlite

2025-12-11 0 428

vlite JS

vlite js (发音/viːlaɪt/ )是一个快速且轻巧的JavaScript库,用于自定义视频和音频播放器。它用本机JavaScript编写而无需依赖性,是围绕提供商插件的API构建的,以扩展这些功能,并保持最小功能。

HTML5视频和音频播放器自动包括在内。其他提供商(例如YouTube或Vimeo)可以使用提供商API加载。插件使用相同的逻辑,可以按插件API按需加载。可以由库创建和加载其他提供商和插件。

为什么要vlite js?

  • 如果您担心应用程序的加载性能,则该库是有意义的,因为它与竞争对手相比极为轻(仅6 kb)。
  • 很少需要与HTML5,YouTube,Vimeo和Dailymotion兼容。该库默认包含仅HTML5功能,并将提供商API暴露于与其他提供商一起扩展功能。
  • 如果需要特定的行为,则插件API允许扩展库功能。
  • 如果您需要为所有Web浏览器的自定义皮肤创建视频或音频播放器。

与比赛相比, vlite js捆绑包的尺寸:

vlite js plyr video.js
未压缩 68 kb 299 kb 2100 kb
压缩 27 KB 110 kb 560 kb
gzip 6 KB 32 kb 159 kb

笔记

  • vlite js 5.0.1
  • plyr 3.7.8
  • videojs 8.3.0

特征

  • 视频和音频-HTML5视频,HTML5音频,YouTube,Vimeo,DailyMotion。
  • 自定义– 选择要显示的控制元素。
  • 没有依赖性– 没有任何框架,用本机JavaScript编写。
  • 全屏– 支持本机全屏API。
  • 提供商API-使用可用的提供商或创建自己的。
  • 插件API-使用可用的插件或创建自己的插件。
  • – 支持HLS.JS流播放。
  • 粘性– 支持粘性。
  • 事件– 所有Web浏览器,提供商和插件的标准化事件。
  • 自动加载API- YouTube,Vimeo和Dailymotion API自动由其提供商加载。
  • 字幕– 支持多个字幕轨道(VTT)。
  • 图片中的图片– 支持图片中的API。
  • 演员– 支持Google Cast API。
  • AirPlay-支持Apple Airplay API。
  • 货币化– 支持Google IMA SDK。
  • Hotkeys-支持热键以添加键盘快捷键。
  • PLAYSINLINE-支持playsinline属性。
  • SVG图标-SVG被内衬到库中,不包括精灵。
  • 可访问性-W3C和A11Y有效。

您可以使用GitHub赞助商来支持此项目! ♡

操场

如果您有兴趣与vlite JS一起玩,则可以在Glitch上使用在线代码操场:

  • HTML5视频
  • html5视频hls.js
  • HTML5视频与Google IMA SDK
  • HTML5音频
  • YouTube
  • Vimeo
  • Dailymotion

例子

该项目包括目录examplesvlite js实现的几个示例。运行以下命令以构建示例的资产:

npm run build && npm run build:example

安装

警告

vlite JS@6是ESM,并使用node.js软件包exports

NPM

NPM是推荐的安装方法。使用以下命令在项目中安装vlite js

npm install vlite js --save-dev
yarn add vlite js --dev

警告

最小支持的Node.js版本为16.20.0

CDN

您还可以下载它,并将其与脚本标签一起作为ESM。

vlite.css\” rel=\”stylesheet\” crossorigin />
<script type=\”module\”>
import vlite js from \’https://cdn.*js*deli*vr.net/npm/vlitejs@6\’;
</script>\”>

 < link href =\" https://cdn.j**sdeli*vr.net/npm/vlitejs@6/dist/ vlite .css \" rel =\" stylesheet \" crossorigin />
< script type =\" module \" >
  import vlite js from \'https://cdn.*jsde*li*vr.net/npm/vlitejs@6\' ;
</ script > 

提示

您可以在jsdelivr.com/package/npm/ vlite JS上浏览NPM软件包的来源。

它如何工作

html

HTML5视频

 < video id =\" player \" src =\" <path_to_video_mp4> \" > </ video > 

HTML5音频

 < audio id =\" player \" src =\" <path_to_audio_mp3> \" > </ audio > 

YouTube

 < div id =\" player \" data-youtube-id =\" <video_id> \" > </ div > 

Vimeo

 < div id =\" player \" data-vimeo-id =\" <video_id> \" > </ div > 

Dailymotion

 < div id =\" player \" data-dailymotion-id =\" <video_id> \" > </ div >

初始化

导入vlite js StyleHeet和JavaScript库作为ES6模块。

vlite .css\’;
import vlite js from \’ vlite js\’;\”>

 import \' vlite js/ vlite .css\' ;
import vlite js from \' vlite js\' ;

vlite js构造函数接受以下参数:

争论 类型 默认 描述
选择器 String|HTMLElement null 唯一的CSS选择器字符串或HTMLElement以瞄准玩家
config Object {} 玩家配置(可选)

用CSS选择器字符串初始化播放器。

 new vlite js ( \'#player\' ) ;

或者,用HTMLElement初始化播放器。

 new vlite js ( document . querySelector ( \'#player\' ) ) ; 

配置

该配置器的第二个参数是具有以下参数的可选对象:

争论 类型 默认 描述
options Object {} 玩家选项
onReady Function|null null 播放器准备就绪时执行回调功能
provider String \'html5\' 玩家提供者
plugins Array [] 玩家插件

vlitejs(\’#player\’, {
options: {},
onReady: function (player) {},
provider: \’html5\’,
plugins: []
});\”>

 new vlite js ( \'#player\' , {
  options : { } ,
  onReady : function ( player ) { } ,
  provider : \'html5\' ,
  plugins : [ ]
} ) ;

选项

可以使用以下参数自定义播放器控件:

选项 类型 默认 描述
controls Boolean true 显示视频的控制栏
autoplay Boolean false 启用媒体自动播放
playPause Boolean true 在控制栏上显示播放/暂停按钮
progressBar Boolean true 在控制条上显示进度栏
time Boolean true 在控制栏上显示时间信息
volume Boolean true 在控制条上显示“音量”按钮
fullscreen Boolean true 在控制栏上显示全屏按钮
poster String|null null 自定义视频海报URL
bigPlay Boolean true 在海报视频上显示大型播放按钮
playsinline Boolean true playsinline属性添加到视频
loop Boolean false 是否循环当前媒体
muted Boolean false 是否静音当前媒体
autoHide Boolean false 在不活动的情况下自动隐藏控制栏
autoHideDelay Integer 3000 自动隐藏延迟以毫秒
providerParams Object {} 覆盖提供商的玩家参数

笔记

  • 仅视频。
  • ²Vimeo提供商需要一个或Pro帐户才能使用此功能(请参阅Vimeo计划)。
  • ³请参阅YouTube嵌入式选项和Vimeo嵌入选项。
  • ⁴iPhone上尚未支持全屏API。

autoplay参数会自动激活muted选项,因为API只能由用户手势启动(请参阅自动播放策略更改)。

自定义的autoHide定义示例和poster选项。

vlitejs(\’#player\’, {
options: {
autoHide: true,
poster: \’/path/to/poster.jpg\’
}
});\”>

 new vlite js ( \'#player\' , {
  options : {
    autoHide : true ,
    poster : \'/path/to/poster.jpg\'
  }
} ) ;

玩家准备好了

播放器准备就绪时将自动执行onReady功能。 HTML5视频和音频收听canplay|loadedmetadata事件。 YouTube,Vimeo和Dailymotion提供商会收听其API返回的onready活动。

该功能将player参数视为播放器实例。您可以使用它与玩家实例和播放器方法进行交互。

准备就绪时muted的示例:

vlitejs(\’#player\’, {
onReady: function (player) {
player.mute();
}
});\”>

 new vlite js ( \'#player\' , {
  onReady : function ( player ) {
    player . mute ( ) ;
  }
} ) ; 

提示

onReady功能也可以使用箭头功能编写。

事件

vlite js.v- vlite元素上公开以下本机Event 。所有提供商的活动都是标准化的。每个插件都有其自己的事件,这些事件在其专用文档中详细介绍。

事件类型 描述
play 在播放方法或自动播放后不再暂停播放状态时发送
pause 当播放状态更改为暂停时发送
progress 定期发送以告知感兴趣的方面的进度下载媒体。
timeupdate 当媒体的currentTime时间更改时发送
volumechange 当音频卷更改时发送
enterfullscreen 当视频切换到全屏模式时发送
exitfullscreen 当视频退出全屏模式时发送
ended 播放完成时发送

笔记

  • 仅视频。

当媒体触发play事件时,听众的示例。

vlitejs(\’#player\’, {
onReady: (player) => {
player.on(\’play\’, () => {
// The video starts playing
});
}
});\”>

 new vlite js ( \'#player\' , {
  onReady : ( player ) => {
    player . on ( \'play\' , ( ) => {
      // The video starts playing
    } ) ;
  }
} ) ;

方法

播放器实例公开以下方法,当玩家准备就绪时可访问。

方法 参数 承诺 描述
play() 开始播放
pause() 暂停播放
setVolume(volume) Number 将音量设置在0和1之间
getVolume() Promise 获取音量
getCurrentTime() Promise 获得当前时间
getDuration() Promise 持续时间
mute() 静音体积
unMute() 取消静音音量
seekTo(time) Number 在几秒钟内寻求当前时间
requestFullscreen() 请求全屏
exitFullscreen() 退出全屏
getInstance() 获取玩家实例
loading() Boolean 设置加载状态
on(event, function) String, Function 添加活动听众
off(event, function) String, Function 删除活动听众
destroy() 摧毁玩家

媒体duration恢复的示例。

vlitejs(\’#player\’, {
onReady: (player) => {
player.getDuration().then((duration) => {
// The duration is available in the \”duration\” parameter
});
}
});\”>

 new vlite js ( \'#player\' , {
  onReady : ( player ) => {
    player . getDuration ( ) . then ( ( duration ) => {
      // The duration is available in the \"duration\" parameter
    } ) ;
  }
} ) ;

自定义CSS属性

播放器公开了一些自定义CSS属性,在.v- vlite选择器下局部范围范围。您可以使用它们来自定义设计。

姓名 价值 描述
-- vlite -colorPrimary #ff7f15 原色
-- vlite -transition 0.25s ease 过渡
-- vlite -controlBarHeight 50px 控制条高度
-- vlite -controlBarHorizontalPadding 10px 控制条水平填充
-- vlite -controlBarBackground linear-gradient(to top, #000 -50%, transparent) 控制条背景
-- vlite -controlsColor #fff|#000 控制颜色(视频|音频)
-- vlite -controlsOpacity 0.9 控制不透明度
-- vlite -progressBarHeight 5px 进度条高度
-- vlite -progressBarBackground rgba(0 0 0 / 25%) 进度栏背景

贡献者

非常感谢Victor Schirm的vlite js徽标。

执照

vlite js已获得MIT许可证的许可。

由 @yoriiis创建。

下载源码

通过命令行克隆项目:

git clone https://github.com/vlitejs/vlite.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 建站资源 vlite https://www.zuozi.net/35337.html

FlutterWebsite
上一篇: FlutterWebsite
FontAwesome.Sharp
下一篇: FontAwesome.Sharp
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务