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. jupyter notebook 动态图显示

    直接在import matplotlib.pyplot as plt 后面加%matplotlib,或者%matplotlib auto就可以通过弹出窗口的形式显示图片

  2. 20175211 2018-2019-2 《Java程序设计》第六周学习总结

    目录 教材学习内容总结 第七章 内部类与异常类 第十章 输入.输出流 教材学习中的问题和解决过程 代码托管 学习进度条 参考资料 教材学习内容总结 第七章 内部类与异常类 第十章 输入.输出流 教材学 ...

  3. .NET CORE 使用Dapper连接MSSQL,MYSQL

    Project file: <Project Sdk="Microsoft.NET.Sdk">   <PropertyGroup>     <Outp ...

  4. chrome浏览器多开的方法

    Chrome浏览器在上网的过程中,会保存一些用户数据,如缓存.cookie.收藏的网页等信息. 这些信息的保存位置是可以设置的.方法也很简单: 桌面上复制一个Chrome的快捷方式,编辑属性,添加-- ...

  5. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.shen.mapper.UserMapper.findById

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.shen.mapper.Use ...

  6. Easyui form提交后input清空的方法

    先上解决办法: $(#formid #inputid).val("") 将这个代码放在提交按钮最后就可以了. 我在做一个修改信息的功能时,发现上一次提交的内容在下一次打开的记录里又 ...

  7. 记录心得-FastJson分层解析demo示例

    记录一下,平时用到,可速查!关键: // startArray(); 开始解析数组 // endArray(); 结束解析数组 // startObject(); 开始解析键值对 // endObje ...

  8. 关于React Native中FlatList的onEndReached属性频繁调用的一种解决办法

    FlatList组件是RN0.43后引入的组件.作为高性能列表组件,FlatList在ListView的基础上优化了加载性能并简化了渲染过程.不仅如此,该组件还提供了onRefresh和onEndRe ...

  9. PHP中文转拼音

    网上大都讲的,都不支持繁体字,毕竟就是一个函数解决的事. 推荐一个很好的扩展,github地址: https://github.com/overtrue/pinyin 怎么用,自己去看就行了.

  10. haproxy 配置文件分析

    LOG 功能: 编辑/etc/rsyslog.conf 配置文件: # Provides UDP syslog reception $ModLoad imudp #需要启用 $UDPServerRun ...