vedeo与audio标签的使用
浏览器原生支持音视频无疑是一件大事——尤其对移动设备而言。不依赖Flash,意味着更加省电、安全和快速的播放体验,而且只需要引入一个标签,就能播放自如。
<video src="daomei.mp4" autoplay controls></video>
仅仅一行代码,就可以实现一个带控件(controls 属性) 的视频播放器。如下图所示。

如果浏览器不支持video元素,我们可以在video标签中嵌入提示文字来实现fallback。
<video src="daomei.mp4" autoplay controls>
你的浏览器不支持<code>video</code>元素,是时候升级了!
</video>
音频播放也是类似的:
<audio src="单车.mp3" controls autoplay>
<p>没有声音,再好的戏也出不来。</p>
</audio>
指定 autoplay 属性可以使视频在加载页面的时候自动播放,loop 属性则可以让其循环播放:
<video src="daomei.mp4" autoplay controls loop></video>
poster 属性可以为视频指定一张海报(播放前会显示它):
<video src="daomei.mp4" controls loop poster="1.png"></video>
对于较大的文件还可以指定 preload 属性进行预载入:
<audio src="单车.mp3" controls perload="auto"></audio>
preload 可以从三个值中指定。
1. none:不缓冲此文件。
2. auto:缓冲整个媒体文件。
3. metadata:只缓冲部分元数据(比如该媒体的时长)。
* 由于不同浏览器支持的文件格式不同,HTML5提供了 source 元素让我们可以提供多种格式编码的文件以兼容这些浏览器:
<video controls autoplay>
<source src="daomei.ogg" type="video/ogg"></source>
<source src="daomei.mp4" type="video/mp4"></source>
<source src="daomei.webm" type="video/webm"></source>
你的浏览器不支持<code>video</code>元素,是时候升级了!
</video>
上面的代码在支持ogg格式的浏览器里会直接播放daomei.ogg文件,如果不支持ogg,浏览器会依次检测MP4和webm格式的支持情况。这里需要注意的是,浏览器会根据type里的MIME值和服务器最终返回的值来判断文件是否可以播放,src里的文件扩展名并不是判断格式的依据。
^_^ 当然除了标签本身提供的这些功能之外,我们还可以使用JavaScript更加细致地控制媒体文件,比如 play 和 pause 方法可以控制媒体的播放与暂停:
var oVideo=document.querySelector('video');
oVideo.play();
setTimeout(function(){
oVideo.pause();
},2000);
当然我们可以写一个简单的MP3播放器,以控制播放/暂停以及控制声音大小:
<audio src="单车.mp3"></audio><br/>
<input type="button" value="播放" onclick="document.querySelector('audio').play();"/>
<input type="button" value="暂停" onclick="document.querySelector('audio').pause();"/>
<input type="button" value="加音量" onclick="document.querySelector('audio').volume+=0.1;"/>
<input type="button" value="减音量" onclick="document.querySelector('audio').volume-=0.1;"/>
* 在这里我们需要注意的就是HTML5提供了暂停接口却并没有提供给我们停止的接口,而且即便是暂停后浏览器依然会继续下载媒体文件。如果想提供停止功能,简单的做法就是将 src 属性设置为空:
var oVideo=document.querySelector('video');
oVideo.play();
setTimeout(function(){
oVideo.pause();
oVideo.src='';
},2000);
媒体元素( video / audio )本身还提供了非常强大的控制功能,我们还可以控制播放的进度:
var oVideo=document.querySelector('video');
oVideo.seekable.start(0); //返回开始时间 (单位为秒,通常都会返回0);
oVideo.seekable.end(0); //返回结束时间,通常是媒体文件的时长;
oVideo.currentTime; //返回当前播放到多少时间;
oVideo.currentTime=122; //跳转到第122秒;
oVideo.played.end(0); //返回浏览器已经播放了多长时间;
oVideo.buffered.end(0); //返回浏览器已经缓冲了多长时间;
oVideo.muted=true; //静音;
oVideo.volume=1; //将音量调至最大;
媒体元素上的seekable、played 和 buffered 属性都是一个 TimeRanges 类型的对象,表示一个时间范围,我们可以通过访问它的 start 和 end 方法来确定开始和结束的时间。currentTime
表示当前时间,它是可读可写的值。一个媒体的开始时间和结束时间通常是固定的。但是我们也可以通过 hash mark(#)的方式来设置,语法是:
<video src="daomei.mp4#t=100,200" autoplay controls></video>
这样视频将自动从第100秒开始播放,并在200秒时停止。时间设置也可以是冒号分割的形式,诸如1:04:00。
<video src="daomei.mp4#t=1:04:00" autoplay controls></video>
注意: 在Android或IOS设备上,HTML5视频元素将会调用设备内置的播放器来播放音视频,定制的播放器外观将失去效果,所以不必纠结。
vedeo与audio标签的使用的更多相关文章
- HTML5的Audio标签打造WEB音频播放器
目前,WEB页面上没有标准的方式来播放音频文件,大多数的音频文件是使用插件来播放,而众多浏览器都使用了不同的插件.而HTML5的到来,给我们提供了一个标准的方式来播放WEB中的音频文件,用户不再为浏览 ...
- 论HTML5 Audio 标签歌词同步的实现
HTML5草案里面其实有原生的字幕标签(<track> Tag)的,但使用的是vtt格式的文件,非常规的字幕(.sub, .srt)或歌词文件(.lrc). 用法如下(代码来自W3Scho ...
- 关于HTML5音频——audio标签和Web Audio API各平台浏览器的支持情况
对比audio标签 和 Web Audio API 各平台浏览器的支持情况: audio element Web Audio API desktop browsers Chrome 14 Yes ...
- 使用audio标签播放音频文件
HTML5定义了一个新的元素用来指定标准的方式来插入音频文件到web页面中:<audio>标签.使用audio标签可以控制音频的播放与停止,循环播放与播放次数设置,以及播放位置等等. 例如 ...
- H5页面实现一个Audio标签加载多个音频文件,并进行播放和展示音频长度
最近微信项目中有需求,要将微信端发送过来的amr格式的语音文件,在项目中的页面上进行展示和播放,实现方式如下: 1.首先java后台收到微信端的消息推送的时候,使用 ffmpeg将amr格式的音频文件 ...
- <video>和<audio>标签
一.<video>基本格式: <video width=" " heigh="" src=""> </vide ...
- HTML5 <Audio/>标签Api整理(二)
1.实例2: 相对较完整 Html代码: <style> #volumeSlider .slider-selection { background:#bababa; } </styl ...
- HTML5 <Audio>标签API整理(一)
简单实例: <audio id="myAudio"></audio> <script> var myAudio = document.getEl ...
- 关于HTML5中audio标签在手机中的autoplay
这个问题是我最头疼的: 问题描述:在开发手机网页的时候,苹果和三星的一些浏览器不能自动开始播放 解决办法:在这个页面上弹出一个层来触发audio标签的play()方法,或者你还可以 谷歌一下----& ...
随机推荐
- C#中&与&&的区别
刚刚翻书发现这个问题,在网上找了一下,我的理解吧. 他俩的区别就是“&”和“|”不执行短路计算,而&&和||执行了短路计算. &不执行短路计算 ——————表达式A&a ...
- ioc开发学习 --简易计时器 (基于iPhone5屏幕尺寸开发)
超简单的秒表:包含:开始.暂停(不清零).清零 方法 核心代码 // // ViewController.m // MiaoBiao // // Created by Ibokan on 15/8/1 ...
- Apache HTTPServer与JBoss/Tomcat的整合与请求分发
http://www.blogjava.net/supercrsky/archive/2008/12/24/248143.html
- bcb6 中安装 delphi7 的控件包
其实只要新建一个包,然后把 d7 中的包包含的 pas 文件也包含进去就行了. 同时它会把对应的 bpi 文件也自动包含. 对于 bcb6 中没有的 PosEx 函数可以这样处理,把 d7 中的实现复 ...
- Primary key and Unique index
SQL> create table t1(id1 char(2),id2 char(2),id3 char(2)); Table created. SQL> desc t1 Name Nu ...
- 物理卷操作命令:pvcreate,pvscan,pvdisplay.卷组操作命令:vgcreate,vgdisplay.
新硬盘创建LVM系统过程. 物理卷操作命令:pvcreate,pvscan,pvdisplay. 卷组操作命令:vgcreate,vgdisplay. 逻辑卷操作命令:lvcreate,lvdispl ...
- 2013年6月19日星期三java中函数地址值传递
今天代码审核时确认了一个问题,理解了java中string和stringbuffer赋值问题,看到一个帖子很好,摘录如下: 理解这两个例子需要分清实参和形参的区别,引用和对象的区别 第一个例子的内部执 ...
- IOS的 testflight测试设置
管理员邀请参与者 1.登录开发者账号https://developer.apple.com/account 2.进入后,点击ituns connect 3.点击进入用户和职能 4.在用户栏点击添加按钮 ...
- vim 的升级 安装 重装
转载自http://blog.chinaunix.net/uid-22891521-id-2109310.html 由于一直以来在一个很old的linux版本下搞开发,里面的vim固然也是一个很old ...
- windows下python安装paramiko
Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是 ...