VideoJs框架学习

VideoJs框架学习

Posted by BY Vic on September 26, 2017

前言

平常我们在做前端开发的时候经常会用到一些流行的框架,这次来讲讲VideoJS框架。

就是这货:

Video.js - HTML5 Video Player

Github-VideoJS

正文

一、入门代码

1、导入CSS和JS

<link href="//vjs.zencdn.net/5.19/video-js.min.css" rel="stylesheet">
<script src="//vjs.zencdn.net/5.19/video.min.js"></script>

2、Html代码

<video
    id="my-player"
    class="video-js"
    controls
    preload="auto"
    poster="//vjs.zencdn.net/v/oceans.png"
    data-setup='{}'>
  <source src="//vjs.zencdn.net/v/oceans.mp4" type="video/mp4"></source>
  <source src="//vjs.zencdn.net/v/oceans.webm" type="video/webm"></source>
  <source src="//vjs.zencdn.net/v/oceans.ogv" type="video/ogg"></source>
  <p class="vjs-no-js">
    To view this video please enable JavaScript, and consider upgrading to a
    web browser that
    <a href="http://videojs.com/html5-video-support/" target="_blank">
      supports HTML5 video
    </a>
  </p>
</video>

3、JS代码

var player = videojs('my-player');
var options = {};
var player = videojs('my-player', options, function onPlayerReady() {
  videojs.log('Your player is ready!');

  // In this context, `this` is the player that was created by Video.js.
  this.play();

  // How about an event listener?
  this.on('ended', function() {
    videojs.log('Awww...over so soon?!');
  });
});

二、播放器组件与初始化

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

播放 this.play()

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

暂停 this.pause()

销毁 this.dispose()

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

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

….

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

2、默认支持的组件有以下这些:

Player
    PosterImage   //默认封面
    TextTrackDisplay
    LoadingSpinner
    BigPlayButton    //大播放按钮
    ControlBar    // 控制条
        PlayToggle   //播放暂停
        FullscreenToggle   //全屏
        CurrentTimeDisplay   //当前播放时间
        TimeDivider
        DurationDisplay
        RemainingTimeDisplay   //剩余播放时间
        ProgressControl   //时间轴
               SeekBar
               LoadProgressBar
               PlayProgressBar
               SeekHandle
        VolumeControl   //音量控制
              VolumeBar
              VolumeLevel
              VolumeHandle 
       PlaybackRateMenuButton  //播放速率

三、皮肤

要根据产品风格去设计播放器的样式,所以样式的重置是必不可少的。接下来说下在修改播放器样式时踩到的一些坑。

1.icon及颜色修改 通过覆盖样式去重置样式。比如修改颜色

.vjs-control-bar{
    color:red;
    font-size:20px;
}

2.组件顺序 组件放置顺序的修改,在video.js中找到这段代码,将数组里的顺序修改下就可以了。

ControlBar.prototype.options_ = {
loadEvent: 'play',
children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'chaptersButton', 'subtitlesButton', 'captionsButton', 'fullscreenToggle']
};

3.hover提示 组件hover提示同理,找到源码修改就好了

k.prototype.controlText_ = "Play"     ------>     k.prototype.controlText_ = "播放"
k.prototype.controlText_ = "Fullscreen"   ------>   k.prototype.controlText_ = "全屏"

4.音量bar由横的变竖的

var options = {
       volumeMenuButton: {
            inline: false,//设置音量bar为竖直
            vertical: true//设置音量bar为竖直
       }
};

//初始化播放器
videojs(('#my-video', options, function() {
console.log('播放器初始化完成');    //回调函数
});

结语

就这样,利用 VideoJs框架可以快速地进行网页视频开发,可以简单快速的定制自己的视频播放器。