video.js视频播放插件
1 初始化
Video.js初始化有两种方式。
1.1 标签方式
一种是在<video>标签里面加上class="video-js"和data-setup='{}'属性。
注意,两者缺一不可。
刚开始的时候我觉得后面的值为空对象{},不放也行,
导致播放器加载不出来,后来加上来就可以了。
1.2 JS方式
另外一种初始化 video.js 的方法是通过JS,格式:
var player = videojs('my-player');
这样有个要求,就是不能配置data-setup,并且需要传入<video>的id。
当然,如果不想一个个初始化,可以这样:
(function(){
var videos = document.getElementsByTagName('video');
for(i=0; i<videos.length; i++) {
var video = videos[i];
if(video.className.indexOf('video-js') > -1) {
videojs(video.id).ready(function(){
});
}
}
})();
2 播放按钮居中
video.js默认的播放按钮在左上角,应该是 video.js 开发人员认为放中间会遮挡内容,所以没放中间。
不过我们常见的一般都在中间,比较符合习惯。
这是可以通过参数修改的,在<video>标签中加入vjs-big-play-centered类,就可以了。
像这样:
class="video-js vjs-big-play-centered"
3 支持<audio>音乐标签
video.js 4.9开始支持<audio>标签,与video不同的是:播放audio时封面不会消失。
但是上面的播放框还是一直在的,配置方式和<video>标签一样,也必须要配置data-setup参数。
4 禁止在iPhone safari中自动全屏
方法如下,在<video>标签中加入playsinline参数,
<video playsinline ></video>
注意,在iOS10之前用的是webkit-playsinline。
5 暂停时显示播放按钮
video.js 在未播放时,会显示一个大的播放按钮,上面我们提到如何让他居中。
那么,如何在视频暂停时也显示这个播放按钮呢?

有很多用JS的解决办法,感觉都挺麻烦的。
其实用CSS就可以搞定了:
.vjs-paused .vjs-big-play-button,
.vjs-paused.vjs-has-started .vjs-big-play-button {
display: block;
}
是不是很轻便很简单 :)
6 播放按钮变○圆形
video.js 默认的播放按钮是圆角矩形,
我们一般更熟悉播放按钮为圆形的:

那么怎么改呢?还是用CSS来解决。
.video-js .vjs-big-play-button{
font-size: 2.5em;
line-height: 2.3em;
height: 2.5em;
width: 2.5em;
-webkit-border-radius: 2.5em;
-moz-border-radius: 2.5em;
border-radius: 2.5em;
background-color: #73859f;
background-color: rgba(115,133,159,.5);
border-width: 0.15em;
margin-top: -1.25em;
margin-left: -1.75em;
}
/* 中间的播放箭头 */
.vjs-big-play-button .vjs-icon-placeholder {
font-size: 1.63em;
}
/* 加载圆圈 */
.vjs-loading-spinner {
font-size: 2.5em;
width: 2em;
height: 2em;
border-radius: 1em;
margin-top: -1em;
margin-left: -1.5em;
}
因为原来居中的时候宽度和高度改变了,所以margin的值也要相应改变
7 点击屏幕播放/暂停
这个是视频播放的时候用得较多的功能,解决方法如下。
.video-js.vjs-playing .vjs-tech {
pointer-events: auto;
}
pointer-events是CSS的一个属性,用来控制鼠标的动作,具体可参考《CSS里的pointer-events属性》。
8 重载视频文件
总有那么一些情形,我们需要 video.js 重新载入视频文件。
比如,立即播放刚上传的文件。
例如这样的标签:
<video id="example_video">
<source id="videoMP4" src="1.mp4" />
</video>
<button id="reload">重载</button>
在video.js中,用现成的js方法就可以实现:
var video = document.getElementById('example_video');
var source = document.getElementById('videoMP4');
$("#reload").click(function() {
video.pause()
source.setAttribute('src', '2.mp4');
video.load();
video.play();
});
或者:
var video = document.getElementById('example_video');
$("#reload").click(function() {
video.pause()
video.setAttribute('src', '2.mp4');
video.load();
video.play();
});
9 进度显示当前播放时间
video.js 默认倒序显示时间,也就是视频播放的剩余时间。
要显示当前的播放时间,以及总共视频时长,加2行CSS解决:
.video-js .vjs-time-control{display:block;}
.video-js .vjs-remaining-time{display: none;}
参考地址:
- http://codepen.io/davatron5000/pen/LskGD
- Video.js 4.9 - Now <audio> can join the party!
- 在网站中嵌入VideoJs视频播放器
- 如何禁止 iPhone Safari 视频自动全屏?
- New <video> Policies for iOS
- Video.js Show play button only when paused
- Reloading video.js player after changing source using jquery
- Show the current time of the video, instead of the remaining time on videojs
video.js视频播放插件的更多相关文章
- video.js视频播放器
免费视频播放器videojs中文教程 Video.js是一款web视频播放器,支持html5和flash两种播放方式.更多关于video.js的介绍,可以访问官方网站介绍,我之前也写过一篇关于vide ...
- ckplayer.js视频播放插件
网页中常见的功能就是播放视频,下面介绍的这个ckplayer.js既可以在pc端播放,也可以在手机网页上播放. 可调用flash也可以调用html5播放器: <div id="a1&q ...
- swfobject.js视频播放插件
在网页中经常会用到视频播放的功能,下面介绍一下swfobject.js的视频播放应用:html代码结构: <div id="video_content"></di ...
- Video.js网页视频播放插件
插件描述:Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器. ...
- 记一个视频播放器插件 video.js
最近在看扣丁学堂上面的一些视频, 突然对他用的视频播放器有点兴趣, 他也是采用的 ts切片播放, 如果使用传统的video标签是无法实现的 他使用的插件叫做 video.js 官网地址 官网提供的播放 ...
- HTML5视频播放插件 video.js介绍
video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/ git& ...
- HTML5视频播放插件Video.js使用详解
一.Video.js简介 Video.js 是一个开源的 Html5 jquery 视频插件,这个插件可以用来处理 Flash 视频,它还是一个多平台支持的产品. Moreover,YouTube,V ...
- 视频播放插件Video.js
这是一个很强大的视频播放插件.
- Video.js web视频播放器
免费视频播放器videojs中文教程 Video.js是一款web视频播放器,支持html5和flash两种播放方式.更多关于video.js的介绍,可以访问官方网站介绍,我之前也写过一篇关于vide ...
随机推荐
- 在Django中使用Channels功能
前言:最近后台写游戏更新版本功能,简单就是前端发送更新请求,后端需要对很多台服务器进行更新和各种操作,本来想着实现不难,后来发现因为后端需要执行很长时间,前端返回报错,后端会执行完毕,但是前端先断开了 ...
- spring boot中连接数据库报错500(mybatis)
spring boot中连接数据库报错500(mybatis) pom.xml中的依赖 <!-- 集成mybatis--> <dependency> <groupId&g ...
- Typora+Markdown便捷发布blog
参考文章:https://www.cnblogs.com/Heroge/p/12459762.html 需要下载Typora和dotnet Typora下载链接:https://www.typora. ...
- STM32—驱动六轴MPU6050输出欧拉角
文章目录 一.MPU6050介绍 1.MPU6050与陀螺仪.加速度计的关系: 2.整体概括 3.引脚说明 4.基本配置及相关寄存器 电源管理寄存器1 陀螺仪配置寄存器 加速度计配置寄存器 FIFO使 ...
- docker 安装 sonarQube
sonarQube 是一款开源代码检测工具.本篇介绍通过 docker 来安装.大概的一个运作流程是这样的,先通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读 ...
- mysql优化: 内存表和临时表
由于直接使用临时表来创建中间表,其速度不如人意,因而就有了把临时表建成内存表的想法.但内存表和临时表的区别且并不熟悉,需要查找资料了.一开始以为临时表是创建后存在,当连接断开时临时表就会被删除,即临时 ...
- Jmeter的默认字体和窗口的设置方法(一次改动,永久生效!!!)
因为每次打开jmeter看到的界面不如意,而且会影响工作发挥和效率,为了给大家带来良好的工作体验,为此给出最完美的设置方法,如下: 第一步: 找到jmeter所在目录--->bin---> ...
- Adaptive AUTOSAR 学习笔记 16 - 时间同步和网络管理
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf.作者:Zijian/TENG 原文地 ...
- 剑指offer计划5(查找算法中等版)---java
1.1.题目1 剑指 Offer 04. 二维数组中的查找 1.2.解法 其实就是暴力解法的升级版,从最后一行开始判断,通过num当前的大小, 如果还是大于目标值则行数-1,若是小于则列数+1 1.3 ...
- Java实现一个死锁
Java实现一个死锁 有一个藏宝图(treasureMapFragment)分成两份jack持有treasureMapFragment1残片1,json持有残片2.jack要求必须先看到json的残图 ...