videojs

yumo6666个月前 (04-26)技术文章55
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 引入 video.js 的 CSS 文件 -->
    <link href="https://vjs.zencdn.net/7.17.0/video-js.css" rel="stylesheet" />
    <title>Video.js Example</title>
</head>

<body>
    <!-- 创建视频容器 -->
    <video id="my-video" class="video-js" controls preload="auto" width="640" height="264"
        data-setup="{}">
        <!-- 视频源 -->
        <source src="https://vjs.zencdn.net/v/oceans.mp4" type="video/mp4" />
        <p class="vjs-no-js">
            To view this video please enable JavaScript, and consider upgrading to a
            web browser that
            <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
        </p>
    </video>

    <!-- 引入 video.js 的 JavaScript 文件 -->
    <script src="https://vjs.zencdn.net/7.17.0/video.min.js"></script>
    <script>
        // 初始化播放器
        var player = videojs('my-video');
      // 如果不想一个一个初始化,可以这样:
      (function(){
          var videos = document.getElementsByTagName('video');
          for(i=0; i<videos.length; i++) {
              var video = videos[i];
              if(video.className.indexOf('video-js') > -1) {
                  videojs(video.id).ready(function(){
                  });
              }
          }
      })();
      //多个初始化 end
    </script>
</body>

</html>    

播放按钮居中

video.js默认的播放按钮在左上角,应该是 video.js 开发人员认为放中间会遮挡内容,所以没放中间。 不过我们常见的一般都在中间,比较符合习惯。 这是可以通过参数修改的,在<video>标签中加入vjs-big-play-centered类,就可以了。 像这样:

class=video-js vjs-big-play-centered

禁止在iPhone safari中自动全屏

方法如下,在<video>标签中加入playsinline参数,

<video playsinline ></video>

注意,在iOS10之前用的是webkit-playsinline

暂停时显示播放按钮

video.js 在未播放时,会显示一个大的播放按钮,上面我们提到如何让他居中。 那么,如何在视频暂停时也显示这个播放按钮呢?

有很多用JS的解决办法,感觉都挺麻烦的。 其实用CSS就可以搞定了:

.vjs-paused .vjs-big-play-button,
.vjs-paused.vjs-has-started .vjs-big-play-button {
    display: block;
}

是不是很轻便很简单 :)

6 播放按钮变○圆形

video.js 默认的播放按钮是圆角矩形, 我们一般更熟悉播放按钮为圆形的:

那么怎么改呢?还是用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;
}

因为原来居中的时候宽度和高度改变了,所以margin的值也要相应改变

进度显示当前播放时间

video.js 默认倒序显示时间,也就是视频播放的剩余时间。 要显示当前的播放时间,以及总共视频时长,加2行CSS解决:

.video-js .vjs-time-control{display:block;}
.video-js .vjs-remaining-time{display: none;}

https://videojs.com/blog/video-js-4-9-now-can-join-the-party/

相关文章

老码农的字节跳动前端面试总结

有幸得到猎头推荐参加字节跳动工程效率部的前端面试,为此准备了一周的时间,面试前内心十分忐忑,略微有些小紧张。由于是下午面试,所以早早起床,翻出许多年前购买的,几近翻烂的《JavaScript设计模式》...

掌握这些CSS知识点,Coding如飞

许多入门学前端的同学,或是准备面试的同学都会去死记硬背一些前端知识点,笔者也是这么经历过来的,但却不推荐这种囫囵吞枣、不求甚解的学习方式,因为这样会走很多弯路,属于“应试”学习,我们更应该的是从基础到...

JAVAEE前奏-今天带大家认识HTML!高手勿进。

接上篇内容。上次介绍了整个课程,目的是告诉大家学习路线,不要偏了。今天开始慢慢告诉大家这些课程的重点。也就是需要学些什么有用的东西,那些没用的可以先不要去学习,等学到一定程度了,再慢慢去挖掘。首先开始...

广州蓝景分享—实用的CSS技巧,助你成为更好的前端开发者

Hello~~各位小伙伴,相信在前端开发项目中,CSS实现如修改输入占位符样式,多行文本溢出,隐藏滚动条,修改光标颜色,水平和垂直居中等等,这些都是我们非常熟悉的开发场景!前端开发者几乎每天都会和它们...

Rust Web编程:第五章 在浏览器上显示内容

我们现在正处于可以构建一个 Web 应用程序的阶段,该应用程序可以使用不同的方法和数据管理一系列 HTTP 请求。 这很有用,特别是当我们为微服务构建服务器时。 然而,我们也希望非程序员能够与我们的应...

Vue基础入门,第15节 一键页面换新衣,动态修改样式的3种方法

更改样式通常有3种方法可以实现,几乎可以应对所有可能性的需求。样式更改分为:字符串修改、数组修改、对象修改。一、 字符串形式对样式进行更改,适用于样式名字不确定,需要动态指定的情况1、定义5个css样...