videojs

yumo6663个月前 (04-26)技术文章29
<!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/

相关文章

实战经验分享:怎么在自己的网站里面调用第三方网站的页面内容

今日,站长在线(olzz.com)的首页右侧边栏里面,有一个是【mip验证】的工具入口,其实我在其他网站也放了这个入口,但是不同的是,以前的页面入口是直接链接到百度mip官方的页面检测地址的,而今天,...

前端兼容性问题总结

1.如何在IE6及更早浏览器中定义小高度的容器? IE6及更早浏览器之所以无法直接定义较小高度的容器是因为默认会有行高。 解决:#test{overflow:hidden;height:1px;fon...

20分钟建立自己的Bootstrap站点

这篇教程旨在让你在20分钟内学会使用twitter bootstrap创建一个站点。看完这个教程后你应该能够使用bootstrap来建立一个基本的响应式布局的页面,了解栅格系统,并且能够使用boots...

deepseek制作&quot;网页端学生签到系统&quot;

网页端学生签到系统制作经验分享 在日常教学管理中,高效准确的签到统计工作至关重要。为了提升签到管理的效率,我着手开发了一个网页端学生签到系统,它能够实现名单导入、签到状态记录与修改以及结果导出等功能,...

css布局方案汇总(28个实例图文并茂)

简介布局在我们前端日常开发来说是非常重要的,一个好的布局能简化代码的同时还能提高网页的性能。常见的布局方法有浮动(float)布局、绝对定位(position)布局、表格布局(table)、弹性(fl...

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

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