在网站中使用VideoJs视频播放器播放视频

article/2025/10/29 15:31:22

之前使用videojs用来网页中播放视频,现在做一下总结 (这里把插件下载及演示地址、使用方法及demo放出来)


视频播放插件Video.js

插件下载地址: http://www.jq22.com/jquery-info404 

演示播放视频地址:http://www.jq22.com/yanshi404 (直接从浏览器打开观看效果)

Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。


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

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

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

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

html

poster="**"播放初始图。可使用三种视频格式,根据所需要格式选择对应的。

<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');videojs("example_video_1").ready(function(){var myPlayer = this;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 ,有时在 Video.js 加载后,有时是在 video 标签被加载进 DOM 后,

videojs("example_video_1", {}, 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类型 的内容。

以下感谢网友怀念★往事 的分享


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 inheritedvar 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"><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();
});

下面送上项目真实案例(带效果图)

先上源码:(把视频播放背景图及视频改为网络上的,或你本地的即可),先下载video.js

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>视频在线播放</title><link href="css/video-js.min.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="js/video.min.js"></script><style type="text/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;}/** 播放器显示控制 */.myVideo-dimensions {margin: 0 auto;}</style></head>
<body oncontextmenu="self.event.returnValue=false" onselectstart="return false" >
<div >
<video id="myVideo" class="video-js vjs-big-play-centered"controls preload="auto" width="800" height="500"poster="img/itxdl.png"data-setup='{"example_option":true}'><source src="兄弟连2017新版BS结构软件类型介绍.mp4" type='video/mp4' />
</video>
</div>
</body>
</html>

效果图:


源码已经打包到百度云盘,下载地址:

链接:https://pan.baidu.com/s/1WVJcZkeou-WX2CPnrdp2cA 
提取码:8y9h 
复制这段内容后打开百度网盘手机App,操作更方便哦


这里再介绍一款html5播放器--01

官方网站:http://www.52player.cn/ 有视频播放器、音频播放器、图片播放器

酷播云 (标准代码演示):http://52player.cn/Demos/CloudPlayer/demo01.html

酷播云 HTML5 标准代码 :

<script src='//player.polyv.net/script/polyvplayer.min.js'></script>
<div id='plv_e785b2c81c9e018296671a1287e99615_e'></div>
<script>
var player = polyvObject('#plv_e785b2c81c9e018296671a1287e99615_e').videoPlayer({
'width':'600',
'height':'337',
'vid' : 'e785b2c81c9e018296671a1287e99615_e' ,
'forceH5':true 
});
</script>

演示效果图:


这里再介绍一款html5播放器--02

ckplayer - 超酷网页视频播放器

官方网站:http://www.ckplayer.com/

 


使用html5中video自定义播放器必备知识点总结以及JS全屏API介绍

一、video的js知识点:

controls(控制器)、autoplay(自动播放)、loop(循环)==video默认的;

自定义播放器中一些JS中提供的方法和属性的记录:

1、play()控制视频的播放

2、pause()控制视频的停止

3、currentTime控制视频的当前时间

4、muted控制视频是否静音(赋值true or false)

5、volume控制音量的大小(赋值0-1)

6、duration视频的总时间

7、ontimeupdate事件(当前播放位置改变时执行,使用时要绑定addEventListener)

8、requestFullscreen全屏

二、全屏API介绍

浏览器全屏API简史

1、第一个实现浏览器原生全屏API的是在Safari 5.0(和iOS)中添加的webkitEnterFullScreen()函数,不过它只能在Safar的<video>标签的controls中。

2、在Safari 5.1中,苹果更新了这个API使它更接近于Mozilla的全屏API草案(实际上这要比苹果实现的更早),现在,所有的DOM元素都可以调用webkitRequestFullScreen()函数使HTML页面进入到全屏模式。

3、Firefox和Chome宣布它们将会添加原生的全屏API支持,而且这个特性已经在Chome 15+以及Firefox10+中实现,Mozilla团队已经发布了一些。

4、在2011年10月15日,W3C发布了一份全屏API草案(由Opera团队的一名成员编写),它跟Mozilla的草案有两个主要的不同点:

  1. Mozilla/Webkit使用大写字母’S'(FullScreen),但W3C则不是(Fullscreen)
  2. Mozilla/Webkit使用cancelFullScreen,W3C使用exitFullscreen

5、更新 (11/15/2011):来自IEBlog的Ted Johnson说IE10将不会支持全屏API (12/05/2011: 我对Ted的第一封email理解错了)IE10的开发团队还没有决定是否要实现全屏API。不过,他指出:Win8的 Metro风格的Internet Explorer始终是全屏状态,正如以前那样,按F11键即可进入全屏模式。

浏览器全屏API

要进入全屏模式,可以调用需要进入全屏元素的requestFullScreen(或者W3C的 requestFullscreen)方法。。要退出全屏,则调用document对象的cancelFullScreen(或者W3C的exitFullscreen)方法。

代码:

全屏

var docElm = document.documentElement; 
//W3C
if(docElm.requestFullscreen){

docElm.requestFullscreen();

}
//FireFox
else if (docElm.mozRequestFullScreen) {

docElm.mozRequestFullScreen();

}
//Chrome等
else if (docElm.webkitRequestFullScreen) {

docElm.webkitRequestFullScreen();

}
//IE11
else if (elem.msRequestFullscreen) {

elem.msRequestFullscreen();

}

退出全屏

if (document.exitFullscreen) {

document.exitFullscreen();

}

else if (document.mozCancelFullScreen) {

document.mozCancelFullScreen();

}

else if (document.webkitCancelFullScreen) {

document.webkitCancelFullScreen();

}

else if (document.msExitFullscreen) {

document.msExitFullscreen();

}

监听是否全屏

document.addEventListener("fullscreenchange", function(){

fullscreenState.innerHTML = (document.fullscreen)? "" : "not ";}, false);

document.addEventListener("mozfullscreenchange", function () {

fullscreenState.innerHTML = (document.mozFullScreen)? "" : "not ";}, false);

document.addEventListener("webkitfullscreenchange", function () {

fullscreenState.innerHTML = (document.webkitIsFullScreen)? "" : "not ";}, false);

document.addEventListener("msfullscreenchange", function () {

fullscreenState.innerHTML = (document.msFullscreenElement)? "" : "not ";}, false);

全屏是的样式设置

html:-moz-full-screen { 
background: red;
}
html:-webkit-full-screen { 
background: red;
}
html:fullscreen {
background: red;
}

https://www.cnblogs.com/duanlianjiang/p/5557015.html

其他资料

video.js使用技巧

一款开源免费跨浏览器的视频播放器--videojs使用介绍

在网站中嵌入VideoJs视频播放器

 

 


http://chatgpt.dhexx.cn/article/uF2xW755.shtml

相关文章

video.js的使用,打造自定义视频播放器(综合详解,可收藏)

video.js的使用&#xff0c;打造自定义视频播放器&#xff08;综合详解&#xff0c;可收藏&#xff09; 一、视频初始化&#xff1a;1、直接在viedo的HTML标签中 初始化,标签里面加上 class"video-js" 和 data-setup{} 属性&#xff0c;例如&#xff1b;2、使用js初…

vue 视频播放插件vue-video-player自定义样式、自动播放设置、设置一开始全屏播放视频、监听全屏事件

1、背景 项目中有涉及视频播放的需求&#xff0c;并且UI设计了样式&#xff0c;与原生的视频video组件有差异&#xff0c;所以使用了vue-video-player插件&#xff0c;并对vue-video-player进行样式改造&#xff0c;自定义播放暂停按钮、全屏按钮、时间进度条样式等&#xff0…

关于谷歌浏览器62版本之后引用video.js不能自动播放的问题(Cross-origin plugin content from http://vjs.zencdn.net/swf/5.0.0-rc

Cross-origin plugin content from http://vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf must have a visible size larger than 400 x 300 pixels, or it will be blocked. Invisible content is always blocked.这句话的意思是&#xff1a;来自http://vjs.zencdn.net/swf/5.0.…

videojs播放器插件使用详解

HTTP stream是各家自己定义的http流&#xff0c;应用于国内点播视频网站。 HLS是苹果公司实现的基于 HTTP 的流媒体传输协议&#xff0c;全称 HTTP Live Streaming&#xff0c;可支持流媒体的直播和点播&#xff0c;主要应用在 iOS 系统&#xff0c;为 iOS 设备&#xff08;如…

videojs-flash.min.js 报错 this.el_.vjs_getProperty is not a function

videojs-flash.min.js 报错 this.el_.vjs_getProperty is not a function 没发现有什么好的解决方法&#xff0c;目前我的问题&#xff0c;就是切换页面的时候或出现这个问题&#xff0c;我猜测是因为this指向变了导致的&#xff0c;我的处理方法就是开个定时器&#xff0c;定时…

this.el_.vjs_getProperty is not a function

前言&#xff1a; 在使用video.js播放rtmp视频中切换页面&#xff0c;如果是弹框引入&#xff0c;关闭弹框时&#xff0c;必然会发现控制台报错这个&#xff0c;这是谈谈我这边遇到的这个问题&#xff0c;以及怎么解决的。 问题&#xff1a; 在说这个问题怎么解决之前&#xf…

Video.js使用教程一(详解)

在项目上遇到类似于直播的场景所以需要前端播放后台的视频流这个问题&#xff0c;所以就此问题记录一下&#xff0c; 在上一篇文章中写到了怎样搭建nginx流媒体服务器以及怎样使用ffmpeg进行推流&#xff0c;那么现在就缺前端拉流这一部分&#xff0c;通过这两个天的辛勤劳动终…

MySQL 导出 CSV 乱码

2019独角兽企业重金招聘Python工程师标准>>> 从MySQL导出数据到 csv 文件后&#xff0c;有时会发现用 excel 打开该导出 csv 文件显示的是乱码&#xff08;不得不说WPS是神器&#xff0c;打开不会乱码 office打开会乱码&#xff09;。这个问题是 csv 文件本身的文本…

Mac中解决CSV乱码问题

新建一个Excel文件&#xff0c;选择文件–》导入 2.选择CSV文件导入 3.“文件导入向导-第1步”弹框中“文件原始格式”选择"Unicode(UTF-8)"&#xff0c;点击下一步 4.“文件导入向导-第2步”中勾选“逗号” 5.“文件导入向导-第3步”保持默认选项&#xff0c;点击…

jemter读取csv乱码

目录 【问题描述】【解决方案】 【问题描述】 已经根据 jmeter读取csv报错配置后&#xff0c;执行压测脚本&#xff0c;jmeter读取csv乱码&#xff0c;请求信息中为乱码&#xff0c;但是不影响交易结果&#xff08;后续有导致交易失败&#xff0c;不知道是否因为乱码引起&…

java csv导出 乱码_java导出csv乱码解决方法介绍

1、问题 将查询的数据以xls文件导出时(UTF-8编码)&#xff0c;数据正常&#xff1b;但以CSV文件导出时&#xff0c;文件中的中文乱码&#xff0c;同样是UTF-8编码&#xff0c;改成GBK编码导出时&#xff0c;中文显示正常。 本以为问题解决&#xff0c;后面导出含拉丁字符(如)的…

win10打开csv乱码

解决方法&#xff1a; 1、打开Excel&#xff1b; 2、点击任务栏的<数据>&#xff1b; 3、点击<从文本/CSV>选择csv文件&#xff1b; 4、修改文件原始格式为&#xff1a;65001&#xff1a;Unicode(UTF-8); 5、点击加载&#xff0c;即可&#xff1b; 6、将文件另存为…

python写入csv中文乱码

利用python写入csv文件打开发现中文乱码。查找资料发现需要修改编码格式&#xff0c;我原来的写法是&#xff1a; f open(51招聘数据-金融分析2.csv,modea,encodingutf-8,newline)试了一下网上的修改encoding为utf-8-sig和gbk&#xff0c;最终发现’gbk’格式的编码是可行的。…

【csv乱码】csv文件打开乱码的情况

先选择“记事本”打开方式打开&#xff0c;打开肯定还是乱码的状态。 不用慌&#xff0c;点击 选择“另存为”该记事本为csv格式&#xff0c;并且选择编码格式为“带有BOM的UTF-8”&#xff08;默认会选择UTF-8&#xff0c;并不能解决乱码的问题&#xff09;。打开另存为的cs…

mysql导入CSV乱码问题解决

错误出现页面 MySQL在导入CSV的时候&#xff0c;其中的中文乱码 解决方案 1.右键该CSV&#xff0c;用记事本打开 2.点击文件–>另存为—>修改编码为UTF-8,再导入新的的CSV就可以了

python写入csv乱码问题

原代码&#xff1a; with open(csv_path, open_mode, newline)as f:f_csv_write csv.writer(f)f_csv_write.writerow(row) 乱码截图&#xff1a; 解决办法&#xff1a; 因为python创建csv文件默认的是ansi格式的&#xff0c;而程序中是utf-8的格式进行保存的&#xff0c;所以…

csv乱码问题

pgAdmin 导出CSV文件&#xff0c;直接打开出现乱码。 解决方法&#xff1a;使用excel导入该csv文件。 step1&#xff1a;资料 > 从文字档 step2&#xff1a; 选择CSV step3&#xff1a;档案原始格式改为&#xff1a;65001&#xff1a;Unicode&#xff08;UTF-8&#xff09;…

unity显示csv乱码

vscode添加插件&#xff0c;vs2022添加插件&#xff0c;都没用&#xff0c;发现是&#xff0c; excel保存为csv时选择上面那个。

php csv乱码问题,如何解决php csv乱码问题

php csv乱码的解决办法:首先重写fputcsv方法;然后添加转码功能,代码如“function fputcsv2($handle, array $fields, $delimiter = "){...}”。 PHP导出CSV中文乱码的解决方法:UTF-8转GB2312 一、背景 因项目需求,要导出Excel表格数据,使用fputcsv方法导出数据遇到中…

CSV文件内容乱码处理办法

CSV文件内容乱码处理办法 从网上下载的.CSV文件有时候会存在数据内容是乱码的现象如下图所示 出现这种情况的原因是&#xff1a; Excel 在读取 csv 的时候是通过读取文件头上的 bom 来识别编码的 因此如果我们查看无bom头编码的 csv 文件&#xff08;例如 utf-8 &#xff0c;…