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 相关文章推荐
js类 from qq
Nov 13 Javascript
js电信网通双线自动选择技巧
Nov 18 Javascript
jquery自定义类似$.ajax()的方法实现代码
Aug 13 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 Javascript
jQuery实现的五子棋游戏实例
Jun 13 Javascript
JS使用eval解析JSON的注意事项分析
Nov 14 Javascript
浅析Bootstrap表格的使用
Jun 23 Javascript
validationEngine 表单验证插件使用实例代码
Jun 15 Javascript
Javascript Promise用法详解
May 10 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
详解webpack的clean-webpack-plugin插件报错
Oct 16 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
php while循环控制的简单实例
2016/05/30 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
java必学必会之static关键字
2015/12/03 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python中关键字is与==的区别简述
2014/07/31 Python
详解Python编程中time模块的使用
2015/11/20 Python
python 排序算法总结及实例详解
2016/09/28 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
python如何实现代码检查
2019/06/28 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
np.random.seed() 的使用详解
2020/01/14 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
历史学专业个人的自我评价
2013/10/13 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
大学班级计划书
2014/04/29 职场文书
经营管理策划方案
2014/05/22 职场文书
东京审判观后感
2015/06/01 职场文书
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL
使用Redis实现分布式锁的方法
2022/06/16 Redis