虽然在github上可以很容易找到video.js,但直接下载下来的话,一是东西很多很乱,二是无法使用。可以使用npm下载,直接npm install video.js即可安装。然后到node_modules目录(一般在C:\Users\用户名\node_modules)里面找到video.js目录,拷贝出来即可使用。

<!DOCTYPE html>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width">

<title>Video.js</title>

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

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

<script src="video.js/dist/video.js"></script>

<style type="text/css" media="screen" id="test">

.vjs-big-play-button,

.vjs-paused.vjs-has-started .vjs-big-play-button {

display: block;

}

.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;

}

</style>

</head>

<body>

<video id="video" class="video-js vjs-big-play-button vjs-default-skin vjs-big-play-centered">

<source src="http://h5player.bytedance.com/video/mp4/xgplayer-demo-720p.mp4"></source>

</video>

<div id="vue">

<div class="test">

<p>视频总时长:{{totalTime}}

<p>当前播放时间:{{currTime}}

<p>是否播放完毕:{{isFinished}}

<p>拖拽:

<span v-if="isDrag==1" onclick="disableDrag()">已开启,点击关闭</span>

<span v-if="isDrag==0" onclick="enableDrag()">已关闭,点击开启</span>

</div>

</div>

<script type="text/javascript">

var vue = new Vue({

el: '#vue',

data: {

totalTime: 0,

currTime: 0,

isFinished: 0,

isDrag: 1,

}

})

var playOptions = {

controls: true, //显示控制条

poster: '', //封面url

fluid: true, //大小自适应

autoplay: false, //自动播放

playbackRates: [0.5, 1, 1.5, 2], //倍率

}

var player = videojs('video', playOptions, function onPlayerReady() {

console.log('准备好了,播放吧');

//this.play();

if( player.readyState() >= 0 ){

player.one("loadedmetadata", function(){

console.log('视频总时长:' + player.duration());

vue.totalTime = player.duration();

});

}

})

player.on('play', function() {

});

//拖动

player.on( 'seeking', function(){

//拖动到未播放过的区域,自动跳回

var oldTime = vue.currTime;

var newtime = player.currentTime();

console.log('oldTime: ' + oldTime);

console.log('newtime: ' + newtime);

if( vue.isDrag==0 && player.currentTime() > vue.currTime ){

player.currentTime(vue.currTime);

}

})

//播放时间更新

player.on('timeupdate', function() {

//获取当前播放进度

vue.currTime = player.currentTime()

//获取视频总时长

vue.totalTime = player.duration()

});

//播放结束

player.on( 'ended', function(){

vue.isFinished = 1;

})

//开启和关闭拖动

function enableDrag(){

vue.isDrag = 1;

}

function disableDrag(){

vue.isDrag = 0;

}

</script>

</body>

</html>

【说明】

CSS部分:

用于控制播放按钮默认居中,且弄成圆形的。

HTML部分:

跟常规的video标签没有什么区别,主要加了几个class。

JS部分:

playOptions,可以用于设置初始化video.js player时的诸多选项,非常有用。相关参数的备注已经直接写在代码后面了。

var player = videojs(...),用于初始化播放器。

player.on('play', function() {}),可以把play换成其它事件,完成对播放器的各种事件监听。

方法/属性,都是使用类似于player.readyState()的方法来实现的,比如获取整个视频的总长度:player.duration(),当前视频的播放进度:player.currentTime()。

【官网】

https://videojs.com/advanced/

更多的技术细节可以参考官网的说明文档。

关于video.js视频播放器的使用,本教程就介绍这么多,抛砖引玉,多多包含!

03-14 10:05