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()方法,或者你还可以 谷歌一下----& ...
随机推荐
- jQuery.dialog
本篇文章主要是对JQUERY中dialog的用法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 今天用到了客户端的对话框,把 jQuery UI 中的对话框学习了一下. 准备 jQ ...
- Flux
Ken Wheeler 构建React 应用的一套架构. 应用程序架构, 单向数据流方案. Dispatcher 的开源库. 一种全局pub/sub 系统的事件处理器, 用于 向所注册的加调函数 ...
- George and Cards
Codeforces Round #227 (Div. 2) E:http://codeforces.com/contest/387/problem/E 题意:给你一个n个数的序列,然后给你一个标准序 ...
- Keil MDK与h-jtag联调
keil MDK也是可以借助h-jtag进行单步调试,写出来与大家一起分享一下. keil MDK编译器使用V4.01版本,下载地址:http://www.embedinfo.com/down-lis ...
- OTP语音芯片和掩模语音芯片(mask)的区别
OTP(One Time Programable)是MCU的一种存储器类型,意思是一次性可编程:程序烧入IC后,将不可再次更改和:因此OTP语音芯片就是指一次性烧录的语音IC. 从OTP定义上来看,只 ...
- 2.JQuery AJAX
new ActiveXObject("Microsoft XMLHTTP")是IE中创建XMLHTTPRequest对象的方法.非IE浏览器创建方法是new XmlHttpRequ ...
- 查看Redis信息和状态
原文转自:http://redisdoc.com/server/info.html INFO [section] 以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和 ...
- jsoup技术抓取网页数据大全
jsoupNews Bugs Discussion Download API Reference Cookbook jsoup ? Cookbook ? Extracting data ? 使用选择器 ...
- 安装Maven、nexus
一.软件包版本 jdk:jdk1.7.0_79 maven:apache-maven-3.3.3-bin.tar.gz nexus:nexus-webapp-2.8.0-05.war 二.安装mave ...
- HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 看到这个时间,我懵逼了... 果然,J ...