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 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
javascript Array数组对象的扩展函数代码
May 22 Javascript
jquery 学习之二 属性(html()与html(val))
Nov 25 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
浅谈javascript中的call、apply、bind
Mar 06 Javascript
js基于cookie记录来宾姓名的方法
Jul 19 Javascript
原生js实现放大镜特效
Mar 08 Javascript
vue axios 在页面切换时中断请求方法 ajax
Mar 05 Javascript
小程序图片长按识别功能的实现方法
Aug 30 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
May 27 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 Javascript
微信公众号生成新浪短网址的实现(快速生成)
Aug 18 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面试题附答案
2009/01/07 PHP
php curl选项列表(超详细)
2013/07/01 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
javascript实现拖放效果
2015/12/16 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
图解javascript作用域链
2019/05/27 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Python FTP操作类代码分享
2014/05/13 Python
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python实现多张图片拼接成大图
2019/01/15 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
银行职员个人的工作自我评价
2014/02/15 职场文书
网吧消防安全责任书
2014/07/29 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
迎新生晚会主持词
2015/06/30 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
PyTorch的Debug指南
2021/05/07 Python
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers