Js视频播放器插件Video.js使用方法详解


Posted in Javascript onFebruary 04, 2020

Video.js快速入门

我们可以下载 Video.js 的源码放到自己的服务器上,或者使用免费的 CDN 托管版本。

在页面中引用video-js.cs样式文件和video.js

<link href="video-js.css" rel="external nofollow" rel="stylesheet" type="text/css">
<script src="video.js"></script>

使用免费的CDN托管版本

<link href="http://vjs.zencdn.net/4.12/video-js.css" rel="external nofollow" rel="stylesheet">
<script src="http://vjs.zencdn.net/4.12/video.js"></script>

设置flash路径,Video.js会在不支持html5的浏览中使用flash播放视频文件

<script>
  videojs.options.flash.swf = "video-js.swf";
</script>

引入video标签,进行视频播放

<video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="640" height="264"
   poster="http://video-js.zencoder.com/oceans-clip.png"
   data-setup="{}">
  <source src="//3water.com/视频地址格式1.mp4" type='video/mp4' />
  <source src="//3water.com/视频地址格式2.webm" type='video/webm' />
  <source src="//3water.com/视频地址格式3.ogv" type='video/ogg' />
  <track kind="captions" src="demo.captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
  <track kind="subtitles" src="demo.captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
</video>

如果需要设置自动播放,将下面代码加到video后面

播放按钮居中

默认情况下,大的播放按钮是被定为在左上角的,这样就不会覆盖视频内容。如果你想让这个播放按钮居中,你可以给你的 video 标签添加额外的 vjs-big-play-centered 样式.如果你还对播放按钮样式不满意可重新定义.video-js .vjs-big-play-button{/*这里的样式重写*/}。

<video id="xttblog" class="video-js vjs-default-skin vjs-big-play-centered"
 controls preload="auto" width="640" height="264"
 poster="http://www.xttblog.com/test/oceans-clip.png"
 data-setup='{"example_option":true}'>
</video>

为动态加载的HTML元素设置Video.js

web 页面或者应用是动态加载 video 标签的(ajax,appendChild),这样在页面加载后这个元素是不存在的,那么你会想要手动设置播放器而不是依靠 data-setup 属性。要做到这一点,首先将 data-setup 属性从 video 标签中移除掉,这样在播放器初始化的时候就不会混乱了。

videojs("xttblog", {}, function(){
 // Player (this) is initialized and ready.
});

videojs 方法中的第一个参数是你的 video 标签的 ID,用你自己的代替。

第二个参数是一个选项对象。它允许你像设置 data-setup 属性一样设置额外的选项。

第三个参数是一个 'ready' 回调。一旦 Video.js 初始化完成后,就会触发这个回调。

你也可以传入一个元素本身的引用来代替元素ID:

videojs(document.getElementById('example_video_1'), {}, function() {
 // This is functionally the same as the previous example.
});
videojs(document.getElementsByClassName('awesome_video_class')[0], {}, function() {
 // You can grab an element by class if you'd like, just make sure
 // if it's an array that you pick one (here we chose the first).
});

如果您无法播放内容,您得确保使用了 正确的格式,你的 HTTP 服务器可能无法提供正确的 MIME类型 的内容

Video.js的详细使用方法如下

var videoObj = videojs(“videoId”);

ready:

myPlayer.ready(function(){
  //在回调函数中,this代表当前播放器,
  //可以调用方法,也可以绑定事件。
})

播放:

myPlayer.play();

暂停:

myPlayer.pause();

获取播放进度:

var whereYouAt = myPlayer.currentTime();

设置播放进度:

myPlayer.currentTime(120);

视频持续时间,加载完成视频才可以知道视频时长,且在flash情况下无效

var howLongIsThis = myPlayer.duration();

缓冲,就是返回下载了多少

var whatHasBeenBuffered = myPlayer.buffered();

百分比的缓冲

var howMuchIsDownloaded = myPlayer.bufferedPercent();

声音大小(0-1之间)

var howLoudIsIt = myPlayer.volume();

设置声音大小

myPlayer.volume(0.5);

取得视频的宽度

var howWideIsIt = myPlayer.width();

设置宽度:

myPlayer.width(640);

获取高度

var howTallIsIt = myPlayer.height();

设置高度:

myPlayer.height(480);

一步到位的设置大小:

myPlayer.size(640,480);

全屏

myPlayer.enterFullScreen();

离开全屏

myPlayer.enterFullScreen();

添加事件

durationchange
ended //播放结束
firstplay
fullscreenchange
loadedalldata
loadeddata
loadedmetadata
loadstart
pause //暂停
play //播放
progress
seeked
seeking
timeupdate
volumechange
waiting
resize inherited
var myFunc = function(){
  // Do something when the event is fired
};

事件绑定

myPlayer.on("ended", function(){
  console.log("end", this.currentTime());
});

myPlayer.on("pause", function(){
  console.log("pause")
});

删除事件

myPlayer.removeEvent(“eventName”, myFunc);

一个页面中有多个视频,需要点击后触发bootstrap 的模态窗,再弹出视频

html:

<a videohref="//3water.com/xxx.mp4" class="video_link"><img src="../images/xxx.jpg"/></a>

JS:

$(".video_link").click(function() {
  var myPlayer = videojs('my-video');
  var videoUrl = $(this).attr("videohref");
  videojs("my-video", {}, function() {
    window.myPlayer = this;
    $("#mymoda .video-con #my-video source").attr("src", videoUrl);
    myPlayer.src(videoUrl);
    myPlayer.load(videoUrl);
    myPlayer.play();
  });
  $(".click-modal").click();
});
// 模态窗消失时,关闭视频  
$('#mymoda').on('hidden.bs.modal', function() {
  myPlayer.pause();

更多关于Js视频播放器插件的文章请点击下面的相关链接

Javascript 相关文章推荐
javascript客户端解决方案 缓存提供程序
Jul 14 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
Jan 07 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
Aug 01 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
微信小程序 前端源码逻辑和工作流详解
Oct 08 Javascript
详解node HTTP请求客户端 - Request
May 05 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
Aug 27 Javascript
支付宝小程序tabbar底部导航
Nov 06 Javascript
layui操作列按钮个数和文字颜色的判断实例
Sep 11 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 #jQuery
JS代码优化的8点建议
Feb 04 #Javascript
9种方法优化jQuery代码详解
Feb 04 #jQuery
JS代码检查工具ESLint介绍与使用方法
Feb 04 #Javascript
使用typescript改造koa开发框架的实现
Feb 04 #Javascript
Vue解析剪切板图片并实现发送功能
Feb 04 #Javascript
Vue实现剪切板图片压缩功能
Feb 04 #Javascript
You might like
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
javascript中的几个运算符
2007/06/29 Javascript
ext 代码生成器
2009/08/07 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python基于twisted框架编写简单聊天室
2018/01/02 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
python根据url地址下载小文件的实例
2018/12/18 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
如何用python写个模板引擎
2021/01/14 Python
财务管理专业毕业生求职信范文
2013/09/21 职场文书
平安家庭事迹材料
2014/12/20 职场文书
大班上学期个人总结
2015/02/13 职场文书
财务出纳岗位职责
2015/03/31 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技