我们采用 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:00h=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:00var h=Math.floor(cTime/3600);// 分钟var m=Math.floor(cTime%3600/60);// 秒var s=Math.floor(cTime%60);// 把数据格式转成 00:00:00h=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
