视频播放插件 Video.js 使用和个版本下载
来源:https://blog.csdn.net/zhanghao143lina/article/details/79457035
Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。(要支持ie低版本请下载5.4.3版 )点击进入官网
下载
各个版本下载
使用
引入文件
<link href="video-js.css" rel="stylesheet" type="text/css">
<script src="video.js"></script>
注:一般我使用时会把下载的包整个拷贝到项目的plugin
目录下,一方面可以方便以后查看Demo的使用方法,另一方面也避免内部文件之间引用的路径问题。
设置flash路径,Video.js会在不支持html5的浏览中使用flash播放视频文件。
- <script>
- videojs.options.flash.swf = "video-js.swf";
- </script>
HTML
- <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="http://视频地址格式1.mp4" type='video/mp4' />
- <source src="http://视频地址格式2.webm" type='video/webm' />
- <source src="http://视频地址格式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>
设置自动播放将下面代码加到html中代码后面
- <script type="text/javascript">
- var myPlayer = videojs('example_video_1'); // video 标签中的ID
- myPlayer.ready(function(){
- myPlayer.play(); // 调用播放函数
- });
- </script>
默认情况下,大的播放按钮是被定为在左上角的,这样就不会覆盖视频内容。如果你想让这个播放按钮居中,你可以给你的 video 标签添加额外的 vjs-big-play-centered
样式,比如:
- <video id="example_video_1" class="video-js vjs-default-skin vjs-big-play-centered"
- controls preload="auto" width="640" height="264"
- poster="http://video-js.zencoder.com/oceans-clip.png"
- data-setup='{"example_option":true}'>
- ...
- </video>
如果你还对播放按钮样式不满意可重新定义video-js .vjs-big-play-button{/这里的样式重写/}
为动态加载的 HTML 元素设置 Video.js
如果你的 web 页面或者应用是动态加载 video 标签的(ajax,appendChild,等等),这样在页面加载后这个元素是不存在的,那么你会想要手动设置播放器而不是依靠 data-setup
属性,做法如下:
- 将 data-setup 属性从 video 标签中移除掉,避免播放器混乱。
- 运行下面的 javascript
videojs("example_video_1", {}, function(){
// Player (this) is initialized and ready.
});
- videojs 方法中的第一个参数是你的 video 标签的 ID,用你自己的代替。
- 第二个参数是一个选项对象。它允许你像设置 data-setup 属性一样设置额外的选项。
- 第三个参数是一个 ‘ready’ 回调。一旦 Video.js 初始化完成后,就会触发这个回调。
注意
在动态加载HTML进行初始化player
对象的时候,很容易出现播放界面混乱的情况,我做的时候就出现了比如播放条错位,缺少播放时间和全局时间的显示,有白点等问题。遇到这种情况先检查加载顺序,如果不是的话也不要慌,在浏览器里找到混乱的元素,自己进行调试,把修改的 css 样式放到 HTML 的 <style>
块中,不要修改插件的 CSS 文件,因为是在 js 加载的时候更改的样式,要在自己的页面里修改,如果这时候修改还是没有起作用,css 属性后面用!important
来强制提高样式加载的优先级。
比如,如果页面有多余元素(例如白点),浏览器调试找到,css 设置display:none
;当页面元素错位(例如进度条、声音图标错位),用margin
来调节合适位置;当页面元素缺失,比如缺少播放时间、剩余时间等,在浏览器 F12 调试找到对应元素,设置display:block
。
常用方法
- 播放:
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="http://xxx.mp4" class="video_link"></a>
js
$(<span class="hljs-string"><span class="hljs-string">".video_link"</span></span>).click(<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span class="hljs-function">(</span><span class="hljs-params"></span><span class="hljs-function"><span class="hljs-params"></span>) </span></span>{</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> <span class="hljs-keyword"><span class="hljs-keyword">var</span></span> myPlayer = videojs(<span class="hljs-string"><span class="hljs-string">'my-video'</span></span>);</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> <span class="hljs-keyword"><span class="hljs-keyword">var</span></span> videoUrl = $(<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>).attr(<span class="hljs-string"><span class="hljs-string">"videohref"</span></span>);</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> videojs(<span class="hljs-string"><span class="hljs-string">"my-video"</span></span>, {}, <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span class="hljs-function">(</span><span class="hljs-params"></span><span class="hljs-function"><span class="hljs-params"></span>) </span></span>{</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> <span class="hljs-built_in"><span class="hljs-built_in">window</span></span>.myPlayer = <span class="hljs-keyword"><span class="hljs-keyword">this</span></span>;</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> $(<span class="hljs-string"><span class="hljs-string">"#mymoda .video-con #my-video source"</span></span>).attr(<span class="hljs-string"><span class="hljs-string">"src"</span></span>, videoUrl);</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> myPlayer.src(videoUrl);</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> myPlayer.load(videoUrl);</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> myPlayer.play();</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> });</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> $(<span class="hljs-string"><span class="hljs-string">".click-modal"</span></span>).click();</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript">});</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"><span class="hljs-comment"><span class="hljs-comment">// 模态窗消失时,关闭视频 </span></span></code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript">$('#mymoda').on('hidden.bs.modal', function() {
myPlayer.pause();
});
场景使用补充
场景1:实时监控
在当需要实时监听视频进度的时候,比如我遇到的场景是课程视频有试听课,只能试听这个视频的前多少分钟。这个时候,不管是普通播放还是拖动进度条都需要实时监听播放的时间进度,判断是否大于试听时间,进行对应操作。
代码片段如下:
// 判断试听时间
if(b){
window.loopMarquee = setInterval(function(){
if(player.currentTime() >= listenTime){
player.pause();
$(<span class="hljs-string"><span class="hljs-string">".gobuy"</span></span>).fadeIn(<span class="hljs-number"><span class="hljs-number">200</span></span>);</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> }</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript"> },<span class="hljs-number"><span class="hljs-number">500</span></span>) <span class="hljs-comment"><span class="hljs-comment">// 设置每500秒查询一次</span></span></code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript">}</code></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"></div></div></li></ol></code><div class="hljs-button" data-title="复制"></div></pre><h4>场景2: 记录观看历史,下次从上次位置打开</h4><p><strong>思路:</strong>在离开页面时触发得到当前播放时间,存到数据库,下一次加载时从数据库取,如果有<code>history_time</code>则用<code>player.currentTime(historyTime)</code>,没有的话,正常从头播放。</p><pre onclick="hljs.copyCode(event)"><code class="language-javascript hljs"><ol class="hljs-ln"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><code class="javascript">$( window ).unload(function() {
getVideoTime();
});
作者:丹青笔
链接:https://www.jianshu.com/p/9414886a8963
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
http://www.taodudu.cc/news/show-4806138.html
相关文章:
- 摄屏播放插件html5,Js视频播放器插件Video.js使用方法详解
- android录制语音,Android语音录制的代码
- C++ QT结合FFmpeg实战开发视频播放器-08播放器项目的整体UI架构
- [iOS]iPhone手机如何取消Apple ID对App的授权
- E_2021
- Ubuntu20.04安装打印机
- 计算机组装声卡,计算机组装与维护教程之声卡.pdf
- 计算机配件声卡,什么是声卡?声卡(也叫音频卡)是mpc的必要部件,它是计算机进行 爱问知识人...
- 用scratch实现网上游戏“球球情侣2”
- C语言实现【小游戏——反弹球消砖块】
- 爱奇艺要怎么样才能更换视频解码设置
- potplayer播放器没有声音、下载不了解码器?
- Qt视频播放器[QMediaPlayer+QVideowidget]
- 刻录方式--轨道一次刻录、光盘一次刻录区别
- 富人是怎样炼就的
- 王文京一把抓住ASP
- 虚拟机VMware tools安装【转载】
- Linux 代理 http 和 socks 配置区别
- Socks协议
- 如何将SOCKS5代理转换成HTTP代理?
- Ubuntu配置socks5转http
- rancher2.6.2 单机及高可用部署
- Linux 防火墙与NAT服务
- centos单机部署greenplum
- 【Educoder离散数学实训】关系基础
- C# 鼠标跟随放大镜
- 实现放大镜效果
- My SQL 安装教程---踩过所有第一次安装会踩的坑
- Tauri 入门教程
- 最新详细版Ubuntu20.04安装教程
视频播放插件 Video.js 使用和个版本下载相关推荐
- java flash 播放器_视频播放插件Video.js
插件描述:Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器.(要支持 ...
- php网页视频播放插件下载_视频播放插件Video.js
插件描述:Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器.(要支持 ...
- 视频播放插件(video.js)
一.视频播放插件 1.插件描述:Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Fla ...
- HTML5视频播放插件 video.js介绍
本文转载于:猿2048网站https://www.mk2048.com/blog/blog.php?id=kjab&title=HTML5%E8%A7%86%E9%A2%91%E6%92%AD ...
- Html5 jquery视频播放插件Video.js
<!doctype html> <html> <head><meta charset="utf-8"><title>Vi ...
- 视频播放插件Video.js
在网页开发过程中,难免会用到video标签,然鹅video标签的默认样式实在不敢恭维,那如何实现视频播放的样式呢? 首先引入: <link href="css/video-js.min ...
- web视频播放插件:Video For Everybody
相比其它的web视频播放插件(video.js , jwplayer等)来说,Video For Everybody(极力推荐)是一款更好的视频播放插件,无需任何下载,支持html5以及flash播放 ...
- 摄屏播放插件html5,Js视频播放器插件Video.js使用方法详解
Video.js快速入门 我们可以下载 Video.js 的源码放到自己的服务器上,或者使用免费的 CDN 托管版本. 在页面中引用video-js.cs样式文件和video.js 使用免费的CDN托 ...
- 使用Raw Image和Unity自带的视频播放插件Video Player
使用Raw Image和Unity自带的视频播放插件Video Player导致视频不清晰 先创建Raw Image 在Raw Image身上添加Video Player和Audio Source组件 ...
最新文章
- linux保存python文件_告诉Python将.txt文件保存到Linux上的某个目录 - python
- ubuntu 上安装mysql
- L1-065 嫑废话上代码 (5 分)-PAT 团体程序设计天梯赛 GPLT
- cuteftp 9 显示中文乱码
- 趋肤效应实验报告_GB/T 4857.2
- 信息学奥赛一本通(c++):1336:【例3-1】找树根和孩子
- Linux 中断(IRQ/softirq)基础:原理及内核实现
- 杭州公司java开发工程师常见面试问题
- VS2019怎么没有C++的窗体应用模板_简历中常被忽视的「自我评价」,怎么写?
- 周杰伦演唱会门票还能这样抢?看过来!我用Python实现了大麦网自动抢票功能
- scratch中的植物大战僵尸之豌豆射手收集豌豆
- 救世之树服务端架设开服需要哪些东西
- 力扣(141.21)补9.1
- response Headers字段详解
- 如何知道你的app进入了前台还是后台
- AXI总线详解-总线和接口以及协议
- Kotlin中_和!!的区别,IBM大面积辞退40岁+的员工
- C++中的reverse()函数
- 编程之道—C#程序设计入门
- 《王者荣耀》帧同步技术理解