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 ...
随机推荐
- UML作业第一次:UML用例图绘制
UML第一次作业 一. 用例图:用例图(usecase diagram)是UML用于描述软件功能的图形.用例图包括用例.参与者及其关系,用例图也可以包括注释和约束.程序员要画时序图啥的用其他的比较麻烦 ...
- Cocos Creator 动态改变sprite图片
首先将存放图片最外层文件夹命名为resources changeBj: function(){ var url = 'globalUI/video/gVideoPlayClick'; var _thi ...
- TP5新增模块
tp5模块自动生成 1build.php配置要生成的目录 <?php// +----------------------------------------------------------- ...
- spring boot入门小案例
spring boot 入门小案例搭建 (1) 在Eclipse中新建一个maven project项目,目录结构如下所示: cn.com.rxyb中存放spring boot的启动类,applica ...
- django--如何将数据结果集序列化传给前端页面展示
示例为一对多的表关系,学生为多,老师为一,设置外键字段可以为空,也就是说关联的老师被删除该学生依然存在,只是相应字段留空 class Teacher(models.Model): name = mod ...
- NetCore持续踩坑
坑1: vs2017 安装 .netcore2.2.2后,新建项目编译报错:.NET SDK 不支持降.NET Core2.2 设置为目标. 我以为是.netcore的sdk版本有误,于是我查看.ne ...
- window xshell 连接本地ubuntu虚拟机
先设置VMware 虚拟机的连接属性 1.桥接,利用真实网卡 设置和window 同一个网段就可以直接通信 2.hostnoly是通过vm8(查看你的所有网络连接) 只能和主机联系 设置和vm8同一 ...
- Windbg程序调试系列4-Live Debugging
上篇博文中给大家分享了使用Windbg分析线程阻塞问题: Windbg程序调试系列3-线程阻塞问题 本篇中我们继续,跟大家分享附加进程实时调试-Live Debugging. 先说一下使用Windbg ...
- Linux基础命令---tload显示系统负载
tload tload指令以字符的方式显示当前系统的平均负载情况. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUSE.openSUSE. 1.语法 ...
- C#导出文本内容到word文档源码
将做工程过程中较好的代码片段珍藏起来,下面的代码内容是关于C#导出文本内容到word文档的代码,希望能对小伙伴们也有好处.<%@ Page Language="C#" Aut ...