h5视频播放
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视频播放的更多相关文章
- Chimee - 简单易用的H5视频播放器解决方案
Chimee是由奇舞团开源的一套H5视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造.Chimee支持MP4.M3U8.FLV等多种媒体格式,同时它也帮我们解决了 ...
- H5 视频播放解决方案
前两天,美团推出的杨洋H5火爆朋友圈.里面主要的是多段视频播放.暂停.听起来很简单,但是由于腾讯白名单限制,在微信浏览器,qq浏览器,会自动将video标签中非腾讯域名的视频 ,自动全屏,结尾追加视频 ...
- 让我为你介绍一个神器:Chimee,一套可扩展的 H5 视频播放器解决方案
Chimee(读"奇米", [tʃɪ'mɪ:])是由奇舞团开源的一套 H5 视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造. Chimee ...
- video.js--很赞的H5视频播放库
video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/ git& ...
- H5视频播放器属性与API控件,以及对程序的解释
一:理论 1.视频播放器的格式介绍 视频主要有三部分组成:视频.音频.编码格式 视频格式:avi.rmb.wmv.mpeg4.ogg.webm 2.H5的标签video的简单使用 <video ...
- Java 使用blob对H5视频播放进行加密《java视频加密》
1.创建一个H5 <video>标签 <video id="sound" type="video/mp4" controls="co ...
- 一个兼容IE7\IE8,H5的多功能视频播放器,H5视频播放器兼容Flash视频播放器
这里记录一个视频播放器,免费可适当修改:名称:ckplayer视频播放器(免费) 官网地址:http://www.ckplayer.com/ 下载地址:http://www.ckplayer.com/ ...
- H5视频播放小结(video.js不好用!!!)
近期在做一个H5的视频课堂,遇到了H5播放的需求,因为原生的video的样式不太理想,尤其是封面无法压住控制条,这就需要我们自定义播放控件. 于是,找了很近的插件,找到了用户比较多的video.js插 ...
- H5视频播放自动全屏,暂停退出全屏等功能
html5视频播放自动全屏,暂停退出全屏等功能 在参考了html5 video fullScreen全屏实现方式及司徒正美的书<javascript框架设计>287页相关代码后,在Safa ...
随机推荐
- 关于PL/SQL Developer与Oracle客户端
这是一个很简单的知识点,但这些年遇到过太多初学者反而受其困扰,所以还是决定记录一下. 背景:国内使用Oracle的群体,几乎都会使用PL/SQL Developer这个图形化的工具进行日常数据维护.这 ...
- VUE2 项目 引入 leaflet.draw全过程
leaflet.draw的参考文档:http://leaflet.github.io/Leaflet.draw/docs/leaflet-draw-latest.html 这个网址不稳定,多刷新几 ...
- python的库小全
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- Go 初体验 - 错误与异常处理
错误处理是学习任何编程语言都需要考虑的一个重要话题 go 内置的 error 接口是这样的: 先上代码: 输出: 释义: 我们首先定义9行的自定义错误类型 30行再实现 error 接口 34定义打开 ...
- 详解UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)
UML中的6大关系相关英文及音标: 依赖关系 dependency --------> 关联关系 association ______> 聚合关系 aggregation ______ ...
- Oracle 10g 使用REGEXP_SUBSTR 分拆字符串 (转)
SELECT l_count, REGEXP_SUBSTR('add, daddf, dsdf, asdfa, dsfasd, dsfad','[^,]+',1,l_count) AS NAME F ...
- Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
网上关于消息队列技术原理说明的详细文档很多,但涉及到Delphi的具体实现很少,这是我从网上找了一上午的资料,自己整合和尝试的能运行的程序. 打开控制面板->程序->添加组件,添加消息队列 ...
- flask实战-个人博客-虚拟环境、项目结构
个人博客 博客是典型的CMS(Content Management system,内容管理系统),通常由两部分组成:一部分是博客前台,用来展示开放给所有用户的博客内容:另一部分是博客后台,这部分内容仅 ...
- Eureka服务端源码流程梳理
一.简述 spring cloud三步走,一导包,二依赖,三配置为我们简化了太多东西,以至于很多东西知其然不知其所以然,了解底层实现之后对于一些问题我们也可以快速的定位问题所在. spring clo ...
- Arrays工具类
1.Arrays工具类针对数组进行操作的工具类 提供了排序查找等功能 2.方法: Arrays.toString(int[] a) 将数据转换成字符串 Arrays.sort(int[] a) 将数组 ...