h5_yingyin

html5的影音功能

html5最大的突破是新增了video和audio元素,以及相关的API

进而赋予浏览器原生能力来播放视频和音频。不在依赖插件

为何要新增这两个元素?

答:1、为了播放视频和音频,各大浏览器自定义专用的元素,彼此的支持程度不同。audio和video元素题供了在网页上嵌入视频和音频的标准方式;

2、由于视频与音频的格式众多,所需的插件也不尽相同,但用户也不一定安装了正确的插件,导致无法播放;

3.对于必须依赖插件来播放的视频,浏览器的做法通常是在网页上保留一个区块给插件,然后就不去解析该区块,然而若有其他元素刚好也用到了该区块,可能会导致浏览器无法正确显示网页。

用法:

1、video元素和audio元素的用法和嵌入图片的img元素类似,也是通过src属性指定视频的来源。

2、若要在网页中自动播放视频,只需要加上autoplay属性;设置的loop属性,就会使视频或者音频循环播放;可以加上controls 属性来显示控制面板;可以设置width和height

3、poster 属性:在视频加载完毕之前或开始播放之前,默认会显示第一个画格,但该画格却不见得具有任何的意义;

4、preload属性:用来告诉用户代理程序,是否要在加载网页的同时将视频预先下载到缓冲区,方便用户在想看的时候可以立刻开始播放。无论它的值为多少,只要有autoplay属性,就会自动开始播放视频。

preload属性的值有一下三种:
none:这个值是告诉用户代理程序不要预先下载视频,除非用户有通过控制接口明确指示要播放视频
metadata:代理程序先获取视频的metadata(如画格尺寸、片长、目录列表、第一个画格等),不要预先下载
auto:由用户代理程序决定是否要预先下载视频。

5、width和height属性:来指定视频显示范围的宽度和高度

注意:
1、若没有指定width属性,将使用视频原本的宽度、poster属性指定之画面的宽度为300像素;
2、若没有height属性,将使用,,,,,,,,,,,,,,高度为150像素;
3、若视频的长宽比例和width、height属性所指定的长宽比例不同,将维持硬盘的长度比例,不会造成视频的变形;
4、audio元素的属性大多和video元素的相同。不过audio元素没有width、height属性,也没有poster属性。

影音文件的来源———–source元素

html5新增的source元素指定影音文件的uri与mime 类型。其属性如下

src=”uri”; 指定影音文件的相对或绝对地址

type=”content-type” :指定影音文件的mime类型

media=”{screen,print,projection,braille,speech,tv,handheld,all}”;指定目的媒体类型(屏幕,打印机,投影仪,盲文点字机,音频合成器,电视,便携设备、全部),省略不写的话,默认是all。

1
2
3
4
5
<video controls autoplay>
<source src="bird.mp4" type="video/mp4">
<source src="bird.ogv" type="video/ogg">
</video>
<!--浏览器会由上至下按序解析source元素-->
注意:
source元素的type属性是很重要的,若遗漏type属性,浏览器就只好下载各个视频文件的部分内容,确认自己究竟支持哪个视频文件,若都不支持,不仅不会播放视频,还会拜拜浪费带宽。
上面的type属性的值 “video/mp4”和”video/ogg” 都只是指定了容器的类型,并没有说明容器里面的影音数据是采用的那种编码方式,以至于有些浏览器无法正确的判断出自己究竟能否播放该视频文件:比较好的做法是在type属性中加入codecs参数指定编解码器。不同的编解码器有不同的设置值。codecs参数的设置
1
2
3
4
<video controls autoplay>
<source src="bird.mp4" type='video/mp4;codecs="avc1.42E01E,mp4a.402"'>
<source src="bird.ogv" type='video/ogg;codecs=theora,vorbis"'>
</video>
video元素还有下列两个只读属性:
videoWidth=”n”:返回视频的原始宽度(n为像素数)
videoHeight=”n”:返回视频的原始高度(n为像素数)

嵌入资源文件——–embed元素

当希望浏览器播放的视频文件需要借助插件时,就可以使用embed元素。注意embed元素没有结束标签。

1
<embed src="butterflies2.swf" type="application/x-shockwave-flash" width="400" height="400">

嵌入对象———object元素

object元素在html文件中嵌入图片、音频、QuickTime视频、ActiveX Controls、Java Applets、Flash动画或浏览器所支持的其他对象。

嵌入视频和音频的用法一样

1
<object data="wildlife.wmv"></object>

object元素里面加上width和height属性,因此,浏览器画面会显示控制面板;若不要显示控制面板,而是要让用户一开启网页,就会自动播放音乐,那么可以将object元素的width和height属性指定为0

嵌入ActiveX Controls

注意:ActiveX Controls的classid是唯一的,不能随便填写,而且它有各自的参数,可以使用param元素的name和value属性指定参数的名称和值。如
1
<param name="AutoStart" value="1"><!--表示参数autoStart的值为1,即它会自动播放-->
1
2
3
4
<object classid="">
<param name="" value="">
<param name="Filename" value="wildlife.wmv"><!--指定要播放此文件-->
</object>

使用object来替代applet

1
2
3
<applet code="bubbles.class" width="400" height="400">
...
</applet>
转为object
1
2
3
<object classid="java:bubbles.class" codetype="application/java"width="400" height="400">
...
</object>