HTML5 DOM 为 <audio> 和 <video> 元素提供了方法、属性和事件。

这些方法、属性和事件允许您使用 JavaScript 来操作 <audio> 和 <video> 元素。

·首先带大家熟悉一下video标签的属性方法,根据属性方法做一个小demo,

    • HTML5支持的视频格式:

      • Ogg

        • 带有Theora视频编码+Vorbis音频编码的Ogg文件
        • 支持的浏览器:FCO
      • MEPG4 
        • 带有H.264视频编码+AAC音频编码的MPEG4文件
        • 支持的浏览器: SC
      • WebM 
        • 带有VP8视频编码+Vorbis音频编码的WebM格式
        • 支持的浏览器: IFCO
        • 劣势:视频少、转码器几乎没有,不好转码
    • 想要video能自动填充慢父div的大小,只要给video标签加上style="width= 100%; height=100%; object-fit: fill"即可

      • 指定一种视频格式,不能播就提示
      • <video id="media" src="examp.mp4" width="500" poster="examp1.jpg" >您的浏览器不支持video</video>

给定多种视频格式,浏览器根据自身支持程度选择播放哪一种

注意:多个source标签,浏览器会从第一个开始识别,如果第一个不被识别,则会继续识别第二个;如果第一个识别成功,则会直接播放第一种格式视频

  <video controls = “controls”>

   <source src=”1.mp4” type=”video/mp4” />  //src属性写到source标签中,要指定视频的type类型,例如MP4的即为type=“video/mp4”

   <source src = “2.ogg” type=”video/ogg” />  //ogg格式

   <source src=”3.webm” type=”video/webm” />   //webm格式

</video>

controls       是否显示播放控件
    autoplay       是否打开浏览器后自动播放
    width          设置播放器的宽度
    height         设置播放器的高度
    loop           设置视频是否循环播放
    preload        设置是否等加载完再播放
    src    url     设置要播放视频的url地址
    poster  imgurl 设置播放器初始默认显示图片

canPlayType()   检测浏览器是否能播放指定的音频/视频类型。
     play()          开始播放音频/视频。
     pause()         暂停当前播放的音频/视频。

playbackRate    设置或返回音频/视频播放的速度。 
     currentTime     设置或返回音频/视频中的当前播放位置(以秒计)。
     duration        返回当前音频/视频的长度(以秒计)。
     loadedmetadata:当指定的音频/视频的元数据已加载时,会发生 loadedmetadata事件。
     timeupdate:      时间改变时触发

muted       设置或返回音频/视频是否静音。
     volume       设置或返回音频/视频的音量

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body> 视频地址:<input type="text" id="videoUrl" value="http://115.231.144.52/12/v/w/m/y/vwmypxnxothnduooudlozlddkekrrs/hc.yinyuetai.com/E771014D8879E8AA0ED2CBC807F1C2CE.flv?sc=f1cc344f8e1ff11a"/>
<button onclick="getVideo()">load</button><br />
<video id="video" width="" height="" controls autoplay loop preload poster="img/1.jpg"></video><br /> <button onclick="play()">播放/暂停</button>
<button id="mute">静音</button>
<button id="volUp">++</button>
<button id="volDown">--</button>
<button id="slower">减慢速率</button>
<button id="normal">恢复速率</button>
<button id="faster">加快速率</button>
<br />
<button id="reset" >复位</button>
<button id="bwd" > &lt;&lt;倒退 </button>
<button id="fwd" >快进>></button>
<br /> 视频长度: <span id="vLength"></span> <br />
当前时间: <span id="curTime" ></span><br />
持续时间: <span id="vRemaining" ></span> </body>
<script type="text/javascript">
/*加载视频*/
var video=document.getElementById("video");
function getVideo(){
var videoUrl=document.getElementById("videoUrl").value;
if(videoUrl!=""){
video.src=videoUrl;
video.load();
}
}
/*播放*/
if(video.canPlayType){
function play(){
if(video.paused){
video.play();
}else{
video.pause();
}
}
}
/*静音*/
document.getElementById("mute").addEventListener("click",function(){
if(video.muted){
video.muted=false;
}else{
video.muted=true;
}
}); /*音量*/
function setVol(value){
var vol=video.volume;
vol+=value;
if(vol>=&&vol<=){
video.volume=vol;
}else{
video.volume=(vol<)?:;
}
}
document.getElementById("volUp").addEventListener("click",function(){
setVol(.);
});
document.getElementById("volDown").addEventListener("click",function(){
setVol(-.);
});
/*减小速率加大速率*/ document.getElementById("slower").addEventListener("click",function(){
video.playbackRate-=.;
});
document.getElementById("faster").addEventListener("click",function(){
video.playbackRate+=.;
});
document.getElementById("normal").addEventListener("click",function(){
video.playbackRate=;
}); /*快进倒退复位*/
function setTime(a){
if(a==){
video.currentTime=a;
}else{
video.currentTime+=a;
}
}
document.getElementById("reset").addEventListener("click",function(){
setTime();
});
document.getElementById("fwd").addEventListener("click",function(){
setTime();
});
document.getElementById("bwd").addEventListener("click",function(){
setTime(-);
});
/*视频长度*/
video.addEventListener("loadedmetadata", function () {
vLength = video.duration.toFixed();
document.getElementById("vLength").textContent = vLength;
});
/*当前时间和持续时间*/
video.addEventListener("timeupdate", function () {
var currentTime= video.currentTime;
document.getElementById("curTime").textContent = currentTime.toFixed();
document.getElementById("vRemaining").textContent = (vLength - currentTime).toFixed();
});
</script>
</html>

H5新特性:video与audio的使用的更多相关文章

  1. H5新特性汇总

    H5新特性: 新增选择器 document.querySelector.document.querySelectorAll 拖拽释放(Drag and drop) API 媒体播放的 video 和 ...

  2. H5新特性-视频,音频-Flash-canvas绘图

    json格式 json - > AJAX json:数据格式,通常是以字符串形式表示 对象 {"name":"james","age" ...

  3. 使用h5新特性,轻松监听任何App自带返回键

    1.前言 如今h5新特性.新标签.新规范等有很多,而且正在不断完善中,各大浏览器商对它们的支持,也是相当给力.作为前端程序员,我觉得我们还是有必要积极关注并勇敢地加以实践.接下来我将和各位分享一个特别 ...

  4. H5新特性--WebStorage--WebSocke

    今天的目标 3.2:h5新特性--WebStorage localStorage  在客户端浏览器保存数据 永久保存 保存数据 localStorage [key] = value 保存数据 loca ...

  5. H5新特性---Web Worker---Web Stroage

    今天的目标 3.1:h5新特性八--Web Worker---代码就3行 程序:program 存储在外存(磁盘)中代码 进程:Process/Task 将程序调用内存中,分配空间 线程:Thread ...

  6. H5新特性---SVG--椭圆--直线--文本--滤镜(高斯滤镜--模糊)--地理定位

    今天的目标 3.1:h5新特性--SVG--椭圆 <ellipse rx="" ry=""  cx="" cy="" ...

  7. H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图

    今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...

  8. H5新特性实现对class的增删改

    直接撸代码 全靠死记硬背 没什么技术点 HTML部分 <!DOCTYPE html> <html lang="en"> <head> <m ...

  9. Atitti html5 h5 新特性attilax总结

    Atitti html5 h5 新特性attilax总结 Attilax觉得不错的新特性 3.语义Header和Footer (The Semantic Header and Footer) 8.占位 ...

  10. 前端面试基础-html篇之H5新特性

    h5的新特性(目前个人所了解)如下 语义化标签 表单新特性 视频(video)和音频(audio) canvas画布 svg绘图 地理定位 为鼠标提供的拖放API webworker (重点)Stor ...

随机推荐

  1. 统计学习方法:CART算法

    作者:桂. 时间:2017-05-13  14:19:14 链接:http://www.cnblogs.com/xingshansi/p/6847334.html . 前言 内容主要是CART算法的学 ...

  2. rovio视觉里程计的笔记

    rovio是一个紧耦合,基于图像块的滤波实现的VIO. 他的优点是:计算量小(EKF,稀疏的图像块),但是对应不同的设备需要调参数,参数对精度很重要.没有闭环,没有mapping thread.经常存 ...

  3. 详细MATLAB 中BP神经网络算法的实现

    MATLAB 中BP神经网络算法的实现 BP神经网络算法提供了一种普遍并且实用的方法从样例中学习值为实数.离散值或者向量的函数,这里就简单介绍一下如何用MATLAB编程实现该算法. 具体步骤   这里 ...

  4. linux driver ------ 交叉工具链(cross toolchain)

    在 ARM Linux 的开发中,人们趋向于使用 Linaro(http://www.linaro.org/)工具链团队维护的 ARM 工具链,它以每月一次的形式发布新的版本,编译好的可执行文件可以网 ...

  5. python pip安装--不是内部或外部命令--解决方案

    首先在 命令行中输入 python -m ensurepip 创建出pip3.exe  , 并找到pip3.exe所在的Scripts路径 使命令行在Scripts路径下 输入pip3 install ...

  6. NATS_02:NATS消息通信模型

    消息通信模型 NATS的消息通信是这样的:应用程序的数据被编码为一条消息,并通过发布者发送出去:订阅者接收到消息,进行解码,再处理.订阅者处理NATS消息可以是同步的或异步的. * 异步处理  异步处 ...

  7. Docker registry私有仓库(七)

    Docker registry私有仓库搭建基本几步流程(采用nginx+认证的方式) 1. 申请免费的ssl证书 https://buy.wosiqn.com/free 2. 设置nginx ssl证 ...

  8. GC的时机

    说到JVM,GC(垃圾回收)是非常重要的机制. 那么首先的问题是: GC在什么时候会发生? GC的触发包括两种情况:1.程序调用System.gc()的时候.2.系统自身决定是否需要GC. 系统进行G ...

  9. 《编写高质量代码:改善JavaScript程序的188个建议》学习小记(二)

    建议3:减少全局变量污染 1.把多个全局变量都追加在一个名称空间下,将显著降低与其他应用程序产生冲突的概率,应用程序也会变得更容易阅读. var My = {}; My.name = { " ...

  10. 你需要了解 Windows Phone 8.1 的11件事

    微软已经发布了其新一代手机操作系统 Windows Phone 8.1,拥有一些新的特性.从本质上来说,微软此次的大修让 Windows Phone 更接近 Android 和 iOS,对于使用体验的 ...