前端学习<一>HTML——09-HTML5举例:简单的视频播放器

42 阅读3分钟

我们采用 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>

工程文件:2018-02-23-H5多媒体播放器.rar

写在最后:希望大家可以点个关注点个赞,这对up真的很重要!谢谢!