简单的视频播放器

我们采用 Bootstrap 网站的图标字体,作为播放器的按钮图标。

index.html的代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
   <meta charset="UTF-8">
   <title></title>
   <!-- 引入字体图标的文件-->
   <link rel="stylesheet" href="css/font-awesome.min.css"/>
   <style>
      *{
           margin: 0;
           padding: 0;
      }
       /*多媒体标题*/
       figcaption{
           text-align: center;
           line-height: 150px;
           font-family: "Microsoft Yahei";
           font-size:24px;
      }

       /* 播放器*/
       .palyer{
           width: 720px;
           height: 360px;
           margin:10px auto;
           border: 1px solid #000;
           background: url(images/loading.gif) center no-repeat #000;
           background-size:auto 100%;
           position: relative;
           border-radius: 20px;

      }

       .palyer video{
           height:100%;
           display: block;
           margin:0 auto;
           /*display: none;*/
      }

       /* 控制条*/

       .controls{
           width: 700px;
           height:40px;
           background-color: rgba(255, 255, 0, 0.3);
           position: absolute;
           bottom:10px;
           left:10px;
           border-radius: 10px;
      }
       /*开关*/
       .switch{
           position: absolute;
           width: 20px;
           height: 20px;
           left:10px;
           top:10px;

           text-align: center;
           line-height: 20px;
           color:yellow;

      }
       /*进度条*/
       .progress{
           width: 432px;
           height: 10px;
           position: absolute;
           background-color: rgba(255,255,255,0.4);
           left:40px;
           top:15px;
           border-radius: 4px;
           overflow: hidden;
      }
       /* 当前进度*/
       .curr-progress{
           width: 50%;
           height: 10px;
           background-color: #fff;
      }
       /* 时间模块*/
       .time{
           width: 120px;
           height: 20px;
           text-align: center;
           line-height: 20px;
           color:#fff;
           position: absolute;
           left:510px;
           top:10px;
           font-size:12px;

      }
       /*全屏*/
       .extend{
           position: absolute;
           width: 20px;
           height: 20px;

           right:20px;
           top:10px;

           text-align: center;
           line-height: 20px;
           color:yellow;
      }

   </style>
</head>
<body>
   <!-- 多媒体-->
   <figure>
       <!-- 多媒体标题-->
       <figcaption>视频案例</figcaption>
       <div class="palyer">
           <video src="video/fun.mp4"></video>
           <!-- 控制条-->
           <div class="controls">
               <!-- 播放暂停-->
               <a href="#" class="switch icon-play"></a>
               <div class="progress">
                   <!-- 当前进度-->
                   <div class="curr-progress"></div>
               </div>
               <!-- 时间-->
               <div class="time">
                   <span class="curr-time">00:00:00</span>/<span class="total-time">00:00:00</span>
               </div>
               <!-- 全屏-->
               <a href="#" class="extend icon-resize-full"></a>
           </div>

       </div>
   </figure>

   <script>
       // 思路:
       /*
      * 1、点击按钮 实现播放暂停并且切换图标
      * 2、算出视频的总时显示出出来
      * 3、当视频播放的时候,进度条同步,当前时间同步
      * 4、点击实现全屏
      */

//       获取需要的标签
           var  video=document.querySelector('video');
//         播放按钮
           var  playBtn=document.querySelector('.switch');
//         当前进度条
           var  currProgress=document.querySelector('.curr-progress');
//         当前时间
           var  currTime=document.querySelector('.curr-time');
//         总时间
           var  totalTime=document.querySelector('.total-time');
//         全屏
           var extend=document.querySelector('.extend');

           var tTime=0;

//         1、点击按钮 实现播放暂停并且切换图标

          playBtn.onclick=function(){
//               如果视频播放 就暂停,如果暂停 就播放
              if(video.paused){
//                   播放
                  video.play();
                  //切换图标
                  this.classList.remove('icon-play');
                  this.classList.add('icon-pause');
              }else{
//                   暂停
                   video.pause();
//                   切换图标
                  this.classList.remove('icon-pause');
                  this.classList.add('icon-play');}
          }

//       2、算出视频的总时显示出出来
//       当时加载完成后的事件,视频能播放的时候
       video.oncanplay=function(){
//             获取视频总时长
           tTime=video.duration;
           console.log(tTime);

//         将总秒数 转换成 时分秒的格式:00:00:00
//           小时
           var h=Math.floor(tTime/3600);
//           分钟
           var m=Math.floor(tTime%3600/60);
//           秒
           var s=Math.floor(tTime%60);

//           console.log(h);
//           console.log(m);
//           console.log(s);

//           把数据格式转成 00:00:00
           h=h>=10?h:"0"+h;
           m=m>=10?m:"0"+m;
           s=s>=10?s:"0"+s;


           console.log(h);
           console.log(m);
           console.log(s);
//           显示出来
           totalTime.innerHTML=h+":"+m+":"+s;
      }
//   * 3、当视频播放的时候,进度条同步,当前时间同步
//         当时当前时间更新的时候触发
       video.ontimeupdate=function(){
//           获取视频当前播放的时间
//           console.log(video.currentTime);
//           当前播放时间
           var cTime=video.currentTime;
//           把格式转成00:00:00

           var h=Math.floor(cTime/3600);
//           分钟
           var m=Math.floor(cTime%3600/60);
//           秒
           var s=Math.floor(cTime%60);

//           把数据格式转成 00:00:00
           h=h>=10?h:"0"+h;
           m=m>=10?m:"0"+m;
           s=s>=10?s:"0"+s;

//           显示出当前时间
           currTime.innerHTML=h+":"+m+":"+s;

//           改变进度条的宽度: 当前时间/总时间
           var value=cTime/tTime;

           currProgress.style.width=value*100+"%";

      }

//       全屏
       extend.onclick=function(){
//           全屏的h5代码
           video.webkitRequestFullScreen();
      }

   </script>
</body>
</html>
 

 

posted @   听江声  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示