• video.js学习笔记


      在开发的项目中,有视频播放这个功能,找了好多前端的插件,最后决定时用video.js 。

      什么是video.js?

      video.js是一个开源的HTML5  jquery 视频插件,这个插件可以用来处理Flash 视频,也可以很好的支持H5,它还是一个多平台支持的产品。

      video.js的优点

    • 它是开源免费的,可以在github很容易的获取到最新的源码。
    • 使用起来非常容易,只要花几秒中就可以夹起一个视频播放页面。
    • 它几乎兼容所有的浏览器,并且优先使用HTML5,在不支持的浏览器中,会自动生成Falsh进行播放。
    • 纯js和css打造,使用最广泛的前端视频播放插件,说明文档详细,学习起来比较容易。

      话不多说,代码里面的注释都很全,video.js中的api我也是了解的不是很多,在以后的具体项目中再学习记录。

      

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>video.js 学习2017-7-28</title>
        <!-- <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> -->
        <link href="css/video-js.css" rel="stylesheet">
        <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
        <script src="http://vjs.zencdn.net/5.18.4/video.min.js"></script>
        <!-- 如果要支持 IE8 -->
        <!-- <script src="http://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script> -->
        <style media="screen">
        .video-div{
          width: 400px;
          height: 200px;
          margin: 80px auto;
        }
        .video-js .vjs-tech {
          /*这行代码最为关键,这样视频播放器的外层容器都由视频内容本身撑大*/
          position: relative;
        }
        /* 设置暂停时中间的显示的播放按钮! */
          vjs-paused .vjs-big-play-button,
          .vjs-paused.vjs-has-started .vjs-big-play-button {
          display: block;
          }
          /* 设置video 圆角 */
          #myVideo1{
            border-radius: 10px;
          }
          /* 设置播放按钮,矩形变 圆形 */
          .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;
          }
           /**/
          .vjs-has-started .vjs-control-bar{
            border-bottom-left-radius: 10px;
            border-bottom-right-radius: 10px;
          }
    
    
        </style>
      </head>
      <body>
        <div>
          我是文字
        </div>
        <div class="video-div">
          <!-- controls 设置或返回视频应该显示的控件,比如:暂停、播放 html5的新特性  -->
          <!--
            preload 是否在页面加载后再入视频  html5新特性
            preload="auto" 当页面加载后载入整个视频
            preload="meta" 当页面加载后载入元数据
            preload="none" 当页面加载后不载入视频
          -->
          <!--
           poster 视频加载时显示的图像,或者在用户点击播放之前显示的图片
           如果未设置,使用视频的第一帧来代替  html5新特性
           poster="URL";
           -->
           <!--
           必须项
           data-setup: 是json的数据格式,页面准备完成时自动加载,如果要强制在pc端使用 flash播放,
           则有两种途径:1.通过 html的 data-setup='{ "techOrder":["flash", "html5"] }'
           2.通过js video("myVideo1",{"techOrder":["flash", "html5"]},function(){
           // 第一个参数:video的id  二. 设置当前data-setup属性,也可以为 {}, 三. 执行的方法
             })
          -->
          <!--
          class说明:
          video-js 应用所需的 Video.js 功能,如全屏和字幕样式。 必须项
          vjs-default-skin 为 HMTL 控制条应用默认的皮肤,可以被移除或重写,以创建你自己的控制条样式。
           -->
           <!--
           source 标签为媒介元素(video、audio)定义媒介资源
           标签允许您规定可替换的视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择。
           属性:
           src :规定媒介文件的URl
           type:规定媒体资源的 MIME 类型。
           preload="meta"
            -->
          <video id="myVideo1" controls preload="auto"  data-setup="{}"  poster="00.jpg"
            class="video-js vjs-default-skin vjs-big-play-centered" width="400" height="200">
            <!-- 没有设置长和高 默认 1920 * 1080 -->
            <!-- source 默认加载 一个文件资源 -->
            <source src="1.mp4" type="video/webm">
            <source src="2.mp4" type="video/mp4">
            <!-- <source src="1.webm" type="video/webm">
            <source src="1.ogv" type='video/ogg' /> -->
          </video>
        </div>
        <div>
          参看文献
            <a href="http://www.awaimai.com/2053.html"></a>
            <a href="http://blog.csdn.net/ly115176236/article/details/50977127"></a>
            <a href="http://blog.csdn.net/huang100qi/article/details/53405876"></a>
            <a href="http://www.cnblogs.com/ShaYeBlog/p/7068188.html"></a>
            <a href="http://www.cnblogs.com/alicePanZ/articles/5676915.html"></a>
            <a href="http://www.cnblogs.com/xinlinux/p/4365188.html"></a>
            <a href="http://www.awaimai.com/2053.html"></a>
            <a href="http://www.cnblogs.com/afrog/p/6689179.html"></a>
    
        </div>
        <div>
          <p> 常用api </p>
          //播放与暂停播放
             myPlayer.play();
            myPlayer.pause();
            //设置/获取视频的当前播放时间
            myPlayer.currentTime();
             myPlayer.currentTime(120);
            //视频总的时常
            myPlayer.duration();
            //获取或设置播放器的视频源
            myPlayer.src();
            myPlayer.src('www.baidu.mp4')
            //获取或者设置视频播放器的poster 图片
            myPlayer.poster();
            myPlayer.poster('xxx.jpg');
        </div>
      </body>
      <!-- 设置Falsh播放器的路径,如果浏览器不支持H5,将会使用Falsh: -->
        <script type="text/javascript">
            videojs.options.flash.swf = "static/video-js/video-js.swf";
         </script>
      <script>
      // 初始化所有的video 标签
      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(){
                });
            }
        }
    
      // 获取视频播放器
      var myPlayer = videojs("myVideo1",{
        "controls": true,
        "autoplay": false,
        "preload": "auto",
        "loop": false,
        controlBar: {
        // captionsButton: false,//用于切换和选择字幕的按钮组件
        chaptersButton: false,//导航与其他语言的其他轨道
        playbackRateMenuButton: true, //用于控制播放速率的组件
        LiveDisplay: true, //显示实时指示器
        subtitlesButton: false, //用于切换和选择字幕的按钮组件
        remainingTimeDisplay: true,//显示视频中剩余的时间
        progressControl: false, // 禁止出现进度条
        //竖着的音量条
        // volumeMenuButton: {
        // inline: false,
        // vertical: true
        // },
        fullscreenToggle: true //切换全屏视频
      },
      mydata: {
                 username: 'xiaoming'
             }
      },function(){
        myPlayer.pause(); // 暂停
      })
      // 用js设置资源文件
      // var myPlayer = videojs('my-player', {
      //   sources: [{
      //     src: '//path/to/video.mp4',
      //     type: 'video/mp4'
      //   }, {
      //     src: '//path/to/video.webm',
      //     type: 'video/webm'
      //   }]
      // });
      //  videojs("myVideo1").ready(function(){
      //    var myPlayer = this;
      //    //myPlayer.play();  //  播放
      //   myPlayer.pause(); // 暂停
      //   var whereYouAt = myPlayer.currentTime();
      //   console.log(whereYouAt);
      //   });
      // 事件关注
       myPlayer.on("play",function(){
         console.log("a");
         var a = myPlayer.currentTime();
        console.log(a);
         // 我是开始播放时的事件
       });
       myPlayer.on("pause",function(){
         // 我是暂停时的事件
       })
       myPlayer.on("ended",function(){
         // 我是结束播放时的事件
       });
      </script>
    </html>
    View Code

  • 相关阅读:
    人工智能发展与模型定制化趋势
    Merry Christmas-集成华为HMS ML Kit手部关键点识别来接住圣诞老人的礼物吧!
    快速构建ML Kit自定义模型,实现特定领域图像/文本分类
    华为consumeOwnedPurchase消耗接口返回-1错误码
    超简单集成华为恶意URL检测,保障用户访问安全
    深入解析 C# 的 String.Create 方法
    .NET 内存泄漏的争议
    Centos相关介绍 (连接别人)
    阿里云 Nginx.conf文件配置详解
    阿里云使用Nginx部署vue项目
  • 原文地址:https://www.cnblogs.com/Sabo-dudu/p/7275126.html
Copyright © 2020-2023  润新知