免费视频播放器videojs中文教程

Video.js是一款web视频播放器,支持html5和flash两种播放方式。更多关于video.js的介绍,可以访问官方网站介绍,我之前也写过一篇关于video.js的使用心得,有兴趣的可以点这里 , 阅读的人数还蛮多的,有些热心的读者甚至还给过我小额打赏,钱虽不多,但是很感动。最几天又收到几位网友的私信,问一些关于videojs使用方面的问题。我自己都不记得videojs长什么模样了,出于别人对我的信任,又回头看了一遍上一篇文章,还是2014年的时候写的,如今videojs的版本已经更新到6.0.0了,代码已经重构了,原来介绍的方法,现在已经不灵通了。于是我又去官网重新下了一份代码,学习之后重写一篇使用教程。

如何获取videojs的代码

videojs的源码托管在github.com上面,一般来说,master分支上对应的是最新版本,点击右边绿色的clone or download 按钮可以行源码的下载,不过最新的代码未必是稳定的版本,所以这里有一个小技巧,我们可以选择最近的tag进行下载,这样相对要稳妥许多.

下载对应的源码之后,一般解压后,可以看到一个dist的目录,里面是作者替我们打包好的代码,一般有两个版本,压缩和未压缩的版本,但是很遗憾,这个版本中居然没有打包好的代码,看来只能自己来完成这一步了。方法很简单,一般看一下how to use 或 quick start ,里边会有介绍怎么生成发布打包发布的方法。然而再次失望,还是没有找到相关介绍。看来只有使出最后的办法了。直接去看package.json文件,找到scripts:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

"homepage""http://videojs.com",

  "author""Steve Heffernan",

  "scripts": {

    "changelog""conventional-changelog -p videojs -i CHANGELOG.md -s",

    "build""grunt dist",

    "change""grunt chg-add",

    "clean""grunt clean",

    "grunt""grunt",

    "lint""vjsstandard",

    "start""grunt dev",

    "test""grunt test",

    "docs""npm run docs:lint && npm run docs:api",

    "jsdoc""jsdoc",

    "predocs:api""node -e \"var s=require(‘shelljs‘),d=[‘docs/api‘];s.rm(‘-rf‘,d);\"",

    "docs:api""jsdoc -c .jsdoc.json",

    "postdocs:api""node ./build/fix-api-docs.js",

    "docs:lint""remark -- ‘./**/*.md‘",

    "docs:fix""remark --output -- ‘./**/*.md‘",

    "babel""babel src/js -d es5",

    "prepublish""not-in-install && run-p docs:api build || in-install",

    "prepush""npm run lint -- --errors",

    "version""node build/version.js && git add CHANGELOG.md"

  },

  里边有很多脚本,我这里只要构建(build)的方法就好了,作者居然用的是grunt, 要安装grunt,需要先安装nodejs,然后通过npm install 安装构建的依赖,完成之后,就可以通过运行 npm run build 脚本得到所需的代码了。

看到这个结果,without errors ,说明成功了。再次打开video.js-master目录,就会有dist目录了,里边有需要的js和css文件,还有一个examples目录。

video.js和video-js.css就是接下来需要用到的文件。如果是放在线上用的,可以直接用压缩版本(加.min后缀的)。

如果这些你都不想做,那么我这里提供现成的下载,点此下载videojs.6.0.0

如何使用videojs播放视频

试想,如果我们没有使用这个videojs进行播放网页视频的话,最简单的办法就是使用html5的video标签。就像下面这样:


1

2

3

<video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="640" height="264"  poster="http://vjs.zencdn.net/v/oceans.png">

        <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">

</video>

videojs使用方式就是以类似的方式开始的,不过由于我们借助videojs对视频进行一些控制或制定,所以要先在head标签里引入video.js和video-js.css这两个文件。然后就可以使用videojs了。最简单的开始:


1

var player = videojs(‘example_video_1‘);

再次刷新这个页面的时候,默认的video外观变成videojs的默认样式了(通常叫皮肤)。

videojs是全局函数,它可以接收三个参数(id,options,onready): 第一个参数是video标签的id,兼容以前的方式,如果用 ‘#‘+id 也是可以的,比如

videojs(‘#example_video_1‘); 第二参数是配置选项,除了在这里给出之外,还可以通过在video标签中,通过data-setup=‘{}‘属性的形式给出。如果不知道要传什么内容,那么这个options可以直接省略,但是如果你要用到第三参数onready的话,这个options不能直接省略,必须要用{}进行占位。第三个参数实际上是videojs初始化完成之后的回调函数,在这个里函数里边,可以使用this引用videojs的实例对象。进行this.play(),this.pause(),this.on(‘ended‘)等操作:

 

下面给一个官方关于onready的例子:


1

2

3

4

5

6

7

8

9

10

11

12

13

var options = {};

var player = videojs(‘example_video_1‘, options, function onPlayerReady() {

  videojs.log(‘播放器已经准备好了!‘);

  // In this context, `this` is the player that was created by Video.js.<br>  // 注意,这个地方的上下文, `this` 指向的是Video.js的实例对像player

  this.play();

  // How about an event listener?<br>  // 如何使用事件监听?

  this.on(‘ended‘function() {

    videojs.log(‘播放结束了!‘);

  });

});

对于视频播放来说,常用的功能有:

1. 播放   this.play()

2. 停止   -- video没有stop方法,可以用pause 暂停获得同样的效果

3. 暂停   this.pause()

4. 销毁  this.dispose()

5. 监听  this.on(‘click‘,fn)

6. 触发事件this.trigger(‘dispose‘)

....

以上的this是指在onPlayerReady函数中执行。

如何配置videojs的参数

有两种方式可以改变videojs的行为:

1. 通过添加video标签的data-setup属性:<video data-setup=‘{"autoplay":"true",.....}‘

2. var player = videojs(‘example_video_1‘,{autoplay:true,....}) , 直接传入options

由于第一种方式是写在html标签中,通过JSON.parse解析,性能低,还容易报错。个人更倾向于方法2.

这里有大量关于options的配置参数:http://docs.videojs.com/tutorial-options.html

常用几个项有:

autoplay :  true/false   播放器准备好之后,是否自动播放 【默认false】If true/present as an attribute, begins playback when the player is ready

controls : true/false 是否拥有控制条 【默认true】,如果设为false ,那么只能通过api进行控制了。也就是说界面上不会出现任何控制按钮       

height: 视频容器的高度,字符串或数字 单位像素  比如: height:300 or height:‘300px‘

width: 视频容器的宽度, 字符串或数字 单位像素

loop : true/false 视频播放结束后,是否循环播放

muted : true/false 是否静音

poster: 播放前显示的视频画面,播放开始之后自动移除。通常传入一个URL

preload:预加载

‘auto‘ 自动

’metadata‘ 元数据信息 ,比如视频长度,尺寸等

    ‘none‘  不预加载任何数据,直到用户开始播放才开始下载

children: Array | Object  可选子组件  从基础的Component组件继承而来的子组件,数组中的顺序将影响组件的创建顺序哦。


1

2

3

4

5

6

7

8

9

// The following code creates a player with ONLY bigPlayButton and

// controlBar child components.

// 下面的方式只使用bigPlayButton和controlBar两个子组件

videojs(‘my-player‘, {

  children: [

    ‘bigPlayButton‘,

    ‘controlBar‘

  ]

});

  

sources:Array 资源文件


1

2

3

4

5

6

7

8

9

videojs(‘my-player‘, {

  sources: [{

    src: ‘//path/to/video.mp4‘,

    type: ‘video/mp4‘

  }, {

    src: ‘//path/to/video.webm‘,

    type: ‘video/webm‘

  }]

});

等价于html中的形式:


1

2

3

4

<video ...>

  <source src="//path/to/video.mp4" type="video/mp4">

  <source src="//path/to/video.webm" type="video/webm">

</video>

techOrder: Array 使用哪种技术播放,可选值有‘html5‘,‘flash‘  默认为[‘html5‘], 注意: 在v6.0.0 及以上的版本中,默认不包含flash的使用代码。如果要使用flash播放的,需要手动引入flash相关逻辑的代码。且需要指定swf文件的路径。


1

2

3

4

5

6

7

8

// 全局指定swf文件的位置 

videojs.options.flash.swf = ‘video-js.swf‘

    // Create a player.

        var player = videojs(‘example_video_1‘,{

            teachOrder:[‘flash‘]

        },function(){

            console.log(this)

        });

还有一些可以配置的项目,比如plugins:自动初始化要加载的插件, 用到的时候再去研究。对于一般的应用,了解以上配置项的用法,应该足以应付一阵了。不过项目的需求往往有些变态(定制需求),这时需要对videojs中一个重要的内容进行深入的学习和理解“Component"--组件。

怎么定制videojs组件

有一个网友问我,怎么在视频中添加一个视频标题,播放的时候自动隐藏标题,用户聚焦到播放器或暂停的时候显示标题?

我觉得这个需求正确的做法应当是通过组件的方式来做。源码地址

其中index.html是用暴力方式实现的,update.html是用组件方式实现的

 

+

时间: 2024-09-27 17:05:42

免费视频播放器videojs中文教程的相关文章

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

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 最近项目中的视频功能,需要做到浏览器全兼容,所以之前用html5实现的视频功能就需要进行改造了.在网上翻了个遍,试来试去,在所有的视频播放器中,就数它最实际了.首先我们来看看它的优点: 1.它是开源免费的,你可以在github很容易的获取它的最新代码. 2.使用它非常的容易,只要花

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

最近项目中的视频功能,需要做到浏览器全兼容,所以之前用html5实现的视频功能就需要进行改造了.在网上翻了个遍,试来试去,在所有的视频播放器中,就数它最实际了.首先我们来看看它的优点: 1.它是开源免费的,你可以在github很容易的获取它的最新代码. 2.使用它非常的容易,只要花几秒钟就可以架起一个视频播放页面. 3.它几乎兼容所有的浏览器,并且优先使用html5,在不支持的浏览器中,会自动使用flash进行播放. 4. 界面可以定制,纯javascript和css打造.说明文档也非常的详细.

网页视频播放器代码大全 + 21个为您的站点和博客提供的免费视频播放器

推荐 使用 极酷 Web在线播放器. 网页中嵌入视频代码综合全然版 1.avi格式 代码片断例如以下: 程序代码 <objectid="video"width="400"height="200"border="0"classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <paramname="ShowDisplay"v

基于JSON数据HTML5视频播放器js插件教程

一.安装 可以通过Bower来安装该视频播放器插件. bower install frame-player 在页面中引入frameplayer.css和frameplayer.js文件. <link rel="stylesheet" href="path-to/frameplayer.css"> <script src="path-to/frameplayer.js"></script> 二.Html结构 在页

Html5视频播放器-VideoJS+Audio标签实现视频,音频及字幕同步播放

一,VideoJS介绍 引用脚本,videojs很为你着想,直接cdn了,你都不需要下载这些代码放入自己的网站 <link href="http://vjs.zencdn.net/c/video-js.css" rel="stylesheet"> <script src="http://vjs.zencdn.net/c/video.js"></script> 如果需要支持IE8,这个js可以自动生成flash

video.js视频播放器

免费视频播放器videojs中文教程 Video.js是一款web视频播放器,支持html5和flash两种播放方式.更多关于video.js的介绍,可以访问官方网站介绍,我之前也写过一篇关于video.js的使用心得,有兴趣的可以点这里 , 阅读的人数还蛮多的,有些热心的读者甚至还给过我小额打赏,钱虽不多,但是很感动.最几天又收到几位网友的私信,问一些关于videojs使用方面的问题.我自己都不记得videojs长什么模样了,出于别人对我的信任,又回头看了一遍上一篇文章,还是2014年的时候写

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

一个博客难免需要引用视频来说明内容,但想要自己来实现一个视频播放器是不是一时半会就能完成的,更重要的是这需要对视频播放技术有一定的了解.于是自然而然的有人会想到开源项目. html5已经原生支持视频元素 而我正在使用地便是video.js.它能够控制基本的播放器样式,支持mp4.webm.ogv视频格式,也能够插入字幕,基本上能够满足常用需求. video.js也使用了html5的特性,如果浏览器不支持html5的话,想要播放视频还得用flash,虽然flash由于资源的消耗广为诟病,但是由于国

视频播放器——开源免费三大代表

视频播放器——开源免费三大代表 视频播放工具,因为要面临庞大的兼容性和纷繁复杂的算法,从架构上看,能脱颖而出的体系屈指可数.大体来说业界主要有3大构架:MPC.MPlayer和 VLC.这3大架构及其衍生品占领了90%的市场,凡是用户能看到的免费媒体播放软件,无一不是源自这3大架构.    MPC/HC(Windows)    MPC(Media Player Classic)和它的后续者MPC-HC应该并列而说.MPC基于DirectShow架构,是Windows系统下元祖级别的播放器.包括K

Flowplayer-一款免费的WEB视频播放器

Flowplayer支持播放flv.swf等流媒体以及图片文件,能够非常流畅的播放视频文件,支持自定义配置和扩展. 1.加载flowplayer.js 在要播放视频的页面的head之间加入flowplayer.js. <script type="text/javascript" src="js/flowplayer-3.2.6.min.js"></script> 您可以到flowplyer官网上下载最新版本:http://flowplayer