欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

视频播放插件 Video.js 有大用

视频播放插件Video.js

所属分类:媒体-音频和视频

  1797001   1426   查看评论 (1098)        
   
视频播放插件Video.jsie兼容6    
插件描述:Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。(要支持ie低版本请下载5.4.3版 )
视频播放插件Video.js在线演示教程    

Video.js最新v7.5.5版 2019-7-4最新    

Bug修复

liveui:在自动播放直播时的一些问题(#6062)(8777c89)

点击下载地址    


   

Video.js最新v7.4.1版 2019-1-9    

错误修复    

a11y: 使用VoiceOver显示当前时间和持续时间

a11y: 修复进度栏中隐藏的控制文本

a11y: 更好的适应屏幕阅读器用户

lang:追加UKR翻译并修复检查翻译命令

lang:改进sv lang文件

点击下载地址    


   

Video.js最新v7.1.0版 2018-7-16    

(7.0以上版本相比之前版本文件大了很多,对文件大小有要求的朋友请选择7.0以下版本)    

   

功能    

自动播放:**扩展自动播放选项以获得更好的效果

浏览器:**在检测谷歌浏览器时包含iOS Chrome UA模式

全屏切换:**如果全屏不可用,则禁用fs按钮

Bug修复    

除了DOM对象外,允许对象(如组件和插件)监听窗口对象。

浏览器:**使用Win10进行TOUCH_ENABLED检测

代码重构    

删除了旧的bug解决方法代码

性能改进    

setTimeout和requestAnimationFrame内存泄漏

还原    

“修复:除了DOM对象之外,允许对象(例如组件和插件)监听窗口对象

点击下载地址    


   

Video.js最新v6.6.2版 2018-1-02更新    

Bug 修复    

  • 进度条时间工具提示bug通过添加word-break css reset(#4859)(98212c4),关闭#2964

  • 在寻求 (#4860) (baf0982) 时, 在Safari中拒绝未处理的承诺, 关闭 #4853

例行工作    

  • netlify:在netlify命令(#4862)(8f450ea)中添加一些调试信息

  • 软件包:更新版本2.0.0(#4834)(22fcd03)

点击下载地址    


   

Video.js v6.2.8版 2017-11-09更新    

点击下载地址    


   

   

Video.js v6.2.5版 2017-8-21更新    

点击下载地址    


   

Video.js v5.18.4版 2017-3-24更新(支持ie8)    

点击下载地址    


   

Video.js v5.16版 2017-2-16更新    

点击下载地址    


   

Video.js v5.10.8版 2016-10-11更新    

点击下载地址    


   

Video.js v5.8.8版 2016-4-11更新    

点击下载地址    


   

Video.js历史v5.4.3版 2015-12-09更新    

点击下载地址    


   

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

使用方法

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

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


   

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

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

html    

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

1
2
3
4
5
6
7
8
9
<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中代码后面
   

1
2
3
4
5
6
7
<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 样式,比如:

1
2
3
4
5
6
<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 后,

1
2
3
videojs("example_video_1", {}, function(){                                
  // Player (this) is initialized and ready.                                
});                                

videojs 方法中的第一个参数是你的 video 标签的 ID,用你自己的代替。

第二个参数是一个选项对象。它允许你像设置 data-setup 属性一样设置额外的选项。

第三个参数是一个 'ready' 回调。一旦 Video.js 初始化完成后,就会触发这个回调。

你也可以传入一个元素本身的引用来代替元素ID:

1
2
3
4
5
6
7
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:    

1
2
3
4
myPlayer.ready(function(){                                
    //在回调函数中,this代表当前播放器,                                
    //可以调用方法,也可以绑定事件。                                
})                                

播放:    

1
myPlayer.play();                                

暂停:    

1
myPlayer.pause();                                

获取播放进度:    

1
var whereYouAt = myPlayer.currentTime();                                

设置播放进度:    

1
myPlayer.currentTime(120);                                

视频持续时间,加载完成视频才可以知道视频时长,且在flash情况下无效

1
var howLongIsThis = myPlayer.duration();                                

缓冲,就是返回下载了多少

1
var whatHasBeenBuffered = myPlayer.buffered();                                

百分比的缓冲    

1
var howMuchIsDownloaded = myPlayer.bufferedPercent();                                

声音大小(0-1之间)

1
var howLoudIsIt = myPlayer.volume();                                

设置声音大小    

1
myPlayer.volume(0.5);                                

取得视频的宽度    

1
var howWideIsIt = myPlayer.width();                                

设置宽度:    

1
myPlayer.width(640);                                

获取高度    

1
var howTallIsIt = myPlayer.height();                                

设置高度:    

1
myPlayer.height(480);                                

一步到位的设置大小:    

1
myPlayer.size(640,480);                                

全屏    

1
myPlayer.enterFullScreen();                                

离开全屏    

1
myPlayer.enterFullScreen();                                

添加事件    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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                                
};                                

事件绑定    

1
2
3
4
5
6
myPlayer.on("ended"function(){                                
    console.log("end"this.currentTime());                                
});                                
myPlayer.on("pause"function(){                                
    console.log("pause")                                
});                                

删除事件    

1
myPlayer.removeEvent(“eventName”, myFunc);                                

一个页面中有多个视频,需要点击后触发bootstrap 的模态窗,再弹出视频

我个人的方法是:

html:    

1
<a videohref="http://xxx.mp4" class="video_link"><img  src="../images/xxx.jpg"/></a>                                

JS:    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(".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();                                
});                                
相关插件-音频和视频
查看更多         
       

个性暗音乐播放精简版插件

本音乐播放器插件 快适用于快速集成到博客,论坛,网站中去,播放器插件来源于个性暗音乐播放模板的阉割版本,去掉了多余的页面布局。        
  音频和视频
 15704   142        
       

jQuery自定audio音频

jQuery自定义audio音频样式,包括功能。        
  音频和视频
 8773   115        
       

音乐播放器

音乐播放器插件        
  音频和视频
 26485   160        
       

一款简单实用的视频播放插件

虽小却精悍,可自动播放,音乐,视频,支持HTML5        
  音频和视频
 87276   230        

讨论这个项目(1098)回答他人问题或分享插件使用方法奖励jQ币    

       
    louniqueve
    2019/8/5 20:18:14            
  • 手机上可以用吗,有兼容问题吗

  • 回复

       
    Jacket
    2019/7/30 17:26:42            
  • 设置播放进度?,没有效果

  • 回复

       
    夜空中最亮的星
    2019/7/30 9:37:34            
  • 想问下兄弟,能否显示下载按钮,点击下载按钮后,可以把播放的视频保存到手机相册里的?

  • 回复

       
    Jenny
    2019/7/29 17:49:35            
  • 不同UI的在哪里设置

    •                    
        ldwsm
        2019/7/30 0:55:11                        
      • 这个要你自己修改对应的CSS样式。

  • 回复

       
    Jenny
    2019/7/29 17:39:42            
  • 点击后为什么会有蓝色外边框,怎么禁掉。。。chrome

  • 回复

       
    王俪锋
    2019/7/29 11:32:52            
  • v7.5.5,在苹果手机上,进度条拖动快进时,变粗,点击音量时又变细,点击音量按钮,进度条还突然变短,来回变化,而且进度条上面显示了一个LIVE

  • 回复

       
    り 冰加可乐 ?
    2019/7/29 10:54:41            
  • 为什么只有声音没有画面,视频源能正常播放

  • 回复

       
    那一落frenzy
    2019/7/25 10:15:38            
  • 不能自动播放,废了

    •                    
        灭霸媳妇评论奖励 1 jQ币                        
        2019/7/25 10:43:31                        

        可以自动播放的,因该是chrome新版浏览浏览器原因之前的方法不管用了,但还是可以实现的。可以参考

        1
        http://www.jq22.com/webqd6264                                                    

        不但可以自动播放,还可以播放完当前视频接着放下一个。
                               

                         
        西瓜评论奖励 1 jQ币                        
        2019/7/25 11:10:59                        

        18年之后chrome版本已不支持autoplay,不只是此插件,是所有的视频播放插件都会遇到此问题,原因为了提高用户体验,防止一进入网页会自动播放声音过大的音频。

        解决方法,添加autoplay muted属性                        

        1
        2
        <video autoplay muted id="my-video" class="video-js" controls preload="auto" width="960" height="400"                                                    
          poster="m.jpg" data-setup="{}">                                                    

        缺点:播放无声。

  • 回复

       
    一睁眼,一切烟消云散。
    2019/7/24 9:16:22            
  • 我想让他进去就全屏然后报错myPlayer.enterFullScreen is not a function

  • 回复

       
    镜辰"行者
    2019/7/19 11:46:50            
  • 手机上可以用吗,有兼容问题吗

来自  http://www.jq22.com/jquery-info404

普通分类: