h5视频播放

一直在写js原生的东西,感觉总是停滞不前,现在我们应该学一些h5新的特性,因为我们毕竟是从事前端的,下面我们一起来写一个视频播放吧

1,html

 <div class="video">
<video src="video/oceans.ogv" controls></video><br>
<div class="box">
<div class="bar"></div>
</div>
<span id="te"></span>
<ul id="list"></ul>
<button>播放</button>
<button>快进</button>
<button>快退</button>
<button>播放速度+</button>
<button>播放速度-</button>
<button>全屏</button>
<button>重新加载</button>
<button>关闭声音</button>
<button>上一个</button>
<button>下一个</button>
<input type="range" max="100" min="0" value="30" id="ipt" onchange="control(8,this)">
<span>X</span><span id="zero">0</span>
</div>

2,css

     .box{width:624px;height:10px;border:1px solid #fafafa;background:#fafafa;}
.bar{width:;height:10px;background:green;}
li{list-style: none;display: inline-block;border:1px solid red;margin-right: 10px;}
.video{width:800px;height:600px;}
video{width:800px;height:400px;}

3,css

 //获取节点
var V=document.querySelector("video");
var btn=document.querySelectorAll("button");
var ipt=document.querySelector("#ipt");
var oSpan=document.querySelector("#zero");
var bar=document.querySelector(".bar");
var box=document.querySelector(".box");
var time=document.querySelector("#te");
var list=document.querySelector("#list");
var a=0;
var data=[{"url":"video/1.mp4","name":"低版本武侠剧"},
{"url":"video/2.mp4","name":"中武侠成本剧"},
{"url":"video/3.mp4","name":"万万木有想到"},
{"url":"video/4.mp4","name":"大王叫我来巡山"}];
//1 点击事件
for(var i=0;i<btn.length;i++){
btn[i].index=i;
btn[i].onclick=function(){
control(this.index);
}
}
function control(state,node){
var init=state;
state=state==2?1:state;
state=state==4?3:state;
switch(state){
case 0:
if(btn[state].innerText=="播放"){
btn[state].innerText="暂停";
V.play();
}else{
btn[state].innerText="播放";
V.pause();
}
break;
case 1:
if(init==1){
V.currentTime+=5;
}else{
V.currentTime+=-5;
}
break;
case 3:
if(init==3){
V.playbackRate+=0.2;
V.playbackRate=V.playbackRate>1.9?1:V.playbackRate;
oSpan.innerText=(oSpan.innerText++)==4?1:oSpan.innerText;
}else{
V.playbackRate+=-0.2;
V.playbackRate=V.playbackRate<0.2?1:V.playbackRate;
oSpan.innerText=(oSpan.innerText--)==-4?1:oSpan.innerText;
}
break;
case 5:
V.webkitRequestFullScreen();
break;
case 6:
V.load();
V.play();
// console.log(V.load());
break;
case 7:
if(V.muted){
V.muted=false;
btn[state].innerText="关闭声音";
}else{
V.muted=true;
btn[state].innerText="打开声音";
}
break;
case 8:
V.volume=node.value/100;
break;
}
}
//视频切换
for(var i=0;i<data.length;i++){
list.innerHTML+="<li>"+data[i].name+"</li>";
}
var alist=document.querySelectorAll("li");
for(var i=0;i<alist.length;i++){
alist[i].index=i;
alist[i].onclick=function(){
a=this.index;
V.src=data[a].url;
V.play();
} }
btn[8].onclick=function(){
V.src="";
a--;
if(a<0){
a=3;
}
V.src=data[a].url;
V.play();
}
btn[9].onclick=function(){
V.src="";
a++;
if(a>3){
a=0;
}
V.src=data[a].url;
V.play();
}
//3 进度条
setInterval(function(){
var m=parseInt(V.duration/60);
var s=parseInt(V.duration%60);
var vm=parseInt(V.currentTime/60);
var vs=parseInt(V.currentTime%60);
time.innerHTML=vm+":"+vs+"/"+m+":"+s;
bar.style.width=V.currentTime/V.duration*100+"%";
},1000/24);
box.onclick=function(e){
var e=e||window.event;
var vtime=e.offsetX/this.offsetWidth*V.duration;
V.currentTime=vtime;
}

h5视频播放的更多相关文章

  1. Chimee - 简单易用的H5视频播放器解决方案

    Chimee是由奇舞团开源的一套H5视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造.Chimee支持MP4.M3U8.FLV等多种媒体格式,同时它也帮我们解决了 ...

  2. H5 视频播放解决方案

    前两天,美团推出的杨洋H5火爆朋友圈.里面主要的是多段视频播放.暂停.听起来很简单,但是由于腾讯白名单限制,在微信浏览器,qq浏览器,会自动将video标签中非腾讯域名的视频 ,自动全屏,结尾追加视频 ...

  3. 让我为你介绍一个神器:Chimee,一套可扩展的 H5 视频播放器解决方案

    Chimee(读"奇米", [tʃɪ'mɪ:])是由奇舞团开源的一套 H5 视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造. Chimee ...

  4. video.js--很赞的H5视频播放库

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  5. H5视频播放器属性与API控件,以及对程序的解释

    一:理论 1.视频播放器的格式介绍 视频主要有三部分组成:视频.音频.编码格式 视频格式:avi.rmb.wmv.mpeg4.ogg.webm 2.H5的标签video的简单使用 <video ...

  6. Java 使用blob对H5视频播放进行加密《java视频加密》

    1.创建一个H5 <video>标签 <video id="sound" type="video/mp4" controls="co ...

  7. 一个兼容IE7\IE8,H5的多功能视频播放器,H5视频播放器兼容Flash视频播放器

    这里记录一个视频播放器,免费可适当修改:名称:ckplayer视频播放器(免费) 官网地址:http://www.ckplayer.com/ 下载地址:http://www.ckplayer.com/ ...

  8. H5视频播放小结(video.js不好用!!!)

    近期在做一个H5的视频课堂,遇到了H5播放的需求,因为原生的video的样式不太理想,尤其是封面无法压住控制条,这就需要我们自定义播放控件. 于是,找了很近的插件,找到了用户比较多的video.js插 ...

  9. H5视频播放自动全屏,暂停退出全屏等功能

    html5视频播放自动全屏,暂停退出全屏等功能 在参考了html5 video fullScreen全屏实现方式及司徒正美的书<javascript框架设计>287页相关代码后,在Safa ...

随机推荐

  1. windows下gitbash中使用zip命令

    参考: https://ranxing.wordpress.com/2016/12/13/add-zip-into-git-bash-on-windows/

  2. B. Lynyrd Skynyrd

    传送门: 题意:给出 n,m,q 然后给出模板串,从1-n数字只出现一次,然后给出长度为m的要询问的串. q组询问:每组询问输出 ‘1’或者‘0’ 每组询问 一对x,y    问在x到y中有没有模板串 ...

  3. jmeter压测mysql报can not be represented as java.sql.Timestame错误解决方法

    JDBC Request  测试mysql时报以下问题? jmeter报错信息: 解决方法: 在数据库url后拼接上字符串?characterEncoding=utf8&zeroDateTim ...

  4. des加密算法java&c#

    项目中用到的数据加密方式是ECB模式的DES加密得到的十六进制字符串.技术支持让写一个.net版的加密算法.这里做一下记录. java版: 16进制使用的是bouncycastle. import c ...

  5. localforage调用setItem时出现DOMException错误的解决方法

    今天使用localforage时出现下面的错误: Uncaught (in promise) DOMException transaction.onabort.transaction.onerror ...

  6. 2017 5 31 php面向过程 面向对象1

    面向过程的语法定义变量:定义函数:使用变量(输出,赋值,等)调用函数:流程控制(if,switch,for,while等) 面向对象的语法1,定义类:定义类的语法中,只有这3种代码:1.1定义属性(变 ...

  7. 安装Oracle Grid的过程中用到的几个小技巧

    1.利用文件来模拟块设备 在grid的安装教程中有一步是 provision the disk devices for use with ASM Filter Driver.但是如果我们没有多个磁盘怎 ...

  8. c# WebApi之接口返回类型详解

    c# WebApi之接口返回类型详解 https://blog.csdn.net/lwpoor123/article/details/78644998

  9. Python爬虫与一汽项目【二】爬取中国东方电气集中采购平台

    网站地址:https://srm.dongfang.com/bid_detail.screen 东方电气采购的页面看似很友好,实际上并不好爬取 在观察网页的审查元素之后发现,1处的网页响应只是单纯的一 ...

  10. 标定版制作(棋盘、圆点、aruco等)

    标定板这个东西,对于双目.立体视觉来说那都是必须的.我们这里提供一些做好的标定板,也提供制作标定板的制作方法 一.基本制作思路(以棋盘标定板为例) 1.  “插入” - “表格” 根据提示选择多少行乘 ...