HTML5 Audio and Video 的新属性简介

时间:2022-06-30 19:43:27

前言:HTML5 中 Audio and Video的使用方法比较简单,但就是比较复杂,方法属性多。如果不常用的几乎难以记住,甚至有些人难以区分不同属性和方法的作用,更别说应用了。以下对Audio and Video的使用方法做了一个简单的总结,算是一个大致轮廓。至于具体的使用方法可以再网上查到,比较多就没总结。

HTML5 Audio and Video 的优势

1、作为原生的浏览器支持,无需安装任何第三方插件

2、HTML5 规范提供了一套完整的多媒体脚本化控制的API,开发人员可以轻易的使用脚本来控制播放的内容。

HTML5 Audio and Video 的缺陷

1、编解码器无法统一,必须对不同的浏览器进行分类处理,这是HTML多媒体规范中最大的缺陷

2、受到HTTP跨源资源共享的限制

3、全屏视频无法通过脚本进行控制,这主要从安全角度考虑,脚本元素控制全屏视频存在很大的漏洞。

4、对Audio和Video两个多媒体元素的访问尚未完全加入到规范中。

5、在播放复杂的视频流时资源消耗过大。

6、没有比特率切换标准,无法再普通、高清、全清视频之间进行切换。

7、暂不支持摄像头和麦克风。

8、在外网嵌入视频方面,远不如Flash方便。

当然这些都只是目前存在的典型缺陷,相信在不久的将来,HTML5将会进一步完善!

HTML5 Audio and Video的使用

一、浏览器支持情况

简介:检测用户的浏览器是否支持 HTML5 Audio and Video

 function load(){
var video = document.createElement("video");
if (typeof(video.canPlayType)) {
alert("支持!");
}else{
alert("不支持!");
}
}
window.addEventListener("load",load,false);

二、元素标签及其简单属性

简介:简单列出多媒体元素标签Audio and Video的属性和简介,具体如下:

src: 指定多媒体文件的来源地址

autoplay: 布尔值,指定是否进行自动播放

loop: 布尔值,指定是否进行循环播放

muted: 指定媒体资源播放时是否静音

controls: 布尔值,指定浏览器是否显示用户控制按钮

crossOrigi:指定多媒体在不同的域中得到服务的条件(解决播放与跨域资源共享的问题)

poster:在多媒体显示区域显示一张图片(类似于封面)

mediagroup:将多个多媒体资源连接起来做重播操作,目前多数浏览器不支持

preload:是否对多媒体文件进行预加载。none/不预加载,metadata/部分预加载,auto/全部预加载(默认)

width、height:设置视频播放区域的宽度和高度

videoWidth、videoHeight:表示视频资源固有的尺寸大小(通过video.videowidth和video.videoheight调用)

三、source子标签及其使用

简介:source标签用来设置多个多媒体文件资源,浏览器会从多个多媒体文件资源中,依次选择其支持的多媒体文件进行播放,其用法和标签属性如下:

<video controls=“controls”>
对不起,您的浏览器不支持HTML5 Audio and Video!
<source src = "test_video.ogv">
<source src = "test_video.mp4">
</video>

source 子标签有三个属性:

src:必选,指定多媒体文件地址

media:可选,用来指定用户的浏览器对于特定的媒体资源是否有效。(media用来设置该多媒体在怎样的浏览器上才可以播放。)

    media的属性值                        //说 明
handheld : //表示该媒体文件只在手持设备上有效,默认是all
all and (min-device-height:600px): //表示该媒体文件只在浏览器的最小高度达到600px时有效
all and (min-device-width:600px): //表示该媒体文件只在浏览器的最小宽度达到600px时有效

type:可选,用来指定引用多媒体资源的视频容器和编解码器。

        type属性值                               说明
video/webm;codecs = "vp8,vorbis" 表示webm视频容器中的vp8视频编解码器和vorbis音频编解码器
video/ogg;codecs = "theora,vorbis" 表示ogg视频容器中的theora视频编解码器和vorbis音频编解码器
video/mp4;codecs = "avc1.42E01E,mp4a.40.2" 表示基本的MEPG-4视频容器中的H.264视频编解码器和ACC音频编解码器
video/mp4;codecs = "avc1.64001E,mp4a.40.2" 表示高质量的MEPG-4视频容器中的H.264视频编解码器和ACC音频编解码器

四、多媒体元素的事件控制

简介:播放器在不同的时候会处于不同的状态,为了让开发人员方便的捕捉到这些状态,HTML5 Audio and Video 提供了一系列的事件属性,具体如下:

onloadstart:浏览器开始请求多媒体资源的数据时触发的事件

onprogress:浏览器正在加载多媒体资源的数据时触发的事件

onsuspend:浏览器正在加载多媒体资源的数据发生中断时触发的事件

onabort:当用户强制停止加载多媒体资源时触发的事件

installed:浏览器正在加载多媒体资源的数据,但是3秒内没有得到数据回应时触发的事件

onloadedmetadata:浏览器对多媒体资源的元数据加载完毕之后触发的事件

onerror:当浏览器发生异常时触发的事件

onemptied:当多媒体资源未初始化触发的事件

onloadeddata:浏览器加载了部分多媒体资源的数据,可以进行播放时触发的事件

oncanplay:浏览器由于后续资源不足自动暂停播放,经数据缓冲之后,可以恢复播放时触发的事件

oncanplaythrough:浏览器由于后续资源不足自动暂停播放,经数据缓冲之后,浏览器拥有足够的数据,可以持续播放时触发的事件

onseeking:浏览器正在定时搜索时触发的事件

onseeked:浏览器定时搜索完成时触发的事件

onplaying:表示当浏览器已经加载了足够的后续数据,可以进行播放时触发的事件。

onended:当浏览器播放完当前媒体数据时触发的事件

onwaiting:浏览器由于后续数据不足自动暂停播放时触发的事件

ondurationchange:当多媒体资源的持续播放时间发生改变时触发的事件

ontimeupdate:表示当播放位置变化时触发的事件,一般为15—250ms;

onplay:当播放器从暂停状态变成播放状态时触发的事件

onpause:当播放器从播放状态变成暂停状态是触发的事件

onratechange:播放器播放速率发生改变时触发的事件

onvolumechange:播放器的音量发生改变时触发的事件

五、多媒体元素的网络状态

简介:探讨HTMLMediaElement(包括Audio和Video)接口中与网络状态有关的常量、属性、和方法,具体如下:

NETWORK_EMPTY常量:(0)当前多媒体资源还没有被初始化。(浏览器还没有获取到指定的多媒体资源。)

NETWORK_IDLE常量:(1)浏览器已经暂停了对当前多多媒体资源数据的加载和缓冲。

NETWORK_LOADING常量:(2)浏览器正在加载过媒体资源。

NETWORK_NO_SOURCE常量:(3)浏览器没有可以选择的多媒体资源。

networkState: 获取当前网络的连通状态,值为以上四个常量,可以用字符串或数字表示。

src属性:多媒体文件的来源地址。

currentSrc属性:只读属性,获取当前多媒体文件的来源地址,属性值作为元数据一起加载。

crossOrigin属性:指定多媒体资源在不同的域中得到的服务的条件,解决播放与跨域资源共享的问题。

preload属性:指定浏览器是否对多媒体文件进行预加载。

load属性:中断当前所有的多媒体操作,对当前的多媒体资源进行重新加载操作。

buffered属性:返回浏览器对多媒体资源已经缓冲的时间范围。

canPlayType()方法:测试用户的浏览器是否支持某种特定的视频容器或者编解码器。

六、多媒体元素的就绪状态

简介:探讨HTMLMediaElement(包括Audio和Video)接口中与就绪状态有关的常量、属性,具体如下:

HAVE_NOTHING常量:(0) 浏览器没有获得有效的多媒体资源。

HAVE_METADATA常量:(1) 浏览器已经加载完了多媒体资源的播放时间、解码渠道、媒体文件的尺寸等元数据。

HAVE_CURRENT_DATA常量:(2) 浏览器已经加载了当前多媒体的数据,可以对当前播放位置的数据进行播放。

HAVE_FUTURE_DATA常量:(3) 浏览器已经缓冲完多媒体资源的后续播放数据。

HAVE_ENOUGH_DATA常量:(4)浏览器有足够的多媒体资源数据进多媒体的播放,即媒体文件的缓冲速率大于媒体的解码播放速率。

readyState属性:获取当前多媒体资源的就绪状态。属性值为以上的五个常量,可以是数字或字符串,具体如上。

seeking属性:布尔值,返回播放器是否在定时播放状态。

七、多媒体元素的异常状态

简介:在HTMLMediaElement接口中,提供一个error属性用来表示浏览器在处理多媒体资源过程中发生的异常。事实上,这个error属性是一个MediaError接口。(目前支持情况还很不完善,仅IE9支持)。本节讨论MediaError对象中的常量和属性,具体如下:

MEDIA_ERR_ABORTED常量:(1) 浏览器被用户强制停止加载多媒体资源产生的异常。

MEDIA_ERR_NETWORK常量:(2) 加载多媒体资源时发生网络中断产生的异常

MEDIA_ERR_DECODE常量:(3) 浏览器不支持当前多媒体资源的视频容器和编解码器。

MEDIA_ERR_SRC_NOT_SUPPORTED常量:(4) src属性值无效时产生的异常。

code属性:返回浏览器在处理多媒体资源过程中产生异常的类型。初始时该属性值为空字符串,异常时为以上四个常量。

八、多媒体元素的播放状态

简介:在HTMLMediaElement接口中,提供了一系列的属性和方法来获取播放器的播放状态信息,本节重点讨论这些属性和方法,具体如下:

currentTime:可读写属性,用来获取或设置多媒体资源的当前播放时间。

duration:只读属性,获取多媒体资源播放的时间长度,单位为秒。

paused:获取当前多媒体资源的播放是否处于暂停状态。

defaultPlaybackRate:可读写属性,表示当前多媒体资源默认的播放速率。面向客户端浏览器。

playbackRate:可读写属性,表示当前多媒体资源默认的播放速率。面向开发人员,属性值发生变化,触发相应的函数。

played:返回浏览器对多媒体资源已经播放的时间范围。同buffered,是一个Timeranges对象。

seekable:返回浏览器对多媒体资源能够进行定时播放的事件范围。

ended:只读属性,获取当前多媒体资源的播放是否处于停止状态。

autoplay:是否进行自动播放。

loop:是否进行循环播放。

paly()方法:使浏览器对当前的多媒体资源进行播放。和pause() 一起使用,其中一个为true,一个为false。

pause()方法:调用paly(),pause()为false。调用pause(),play()为false。

九、多媒体元素的控制按钮

简介:在HTMLMediaElement接口中,也提供了几个播放器控制按钮的属性,本节讨论与播放按钮有关的属性的具体使用,如下:

controls:是否显示播放器的用户控制按钮。

volume:可读写属性,调节多媒体资源播放时音量的大小。(0—1.0之间,初始值为1.0,每次值改变都触发onvolumechange事件)

defaultMuted:可读写属性,表示当前多媒体资源播放时是否默认为静音。

muted:可读写属性,设置当前多媒体资源播放时是否静音。

总结:记住对应的方法属性,学会应用和查找。

参考书籍:《HTML5 +CSS3技术应用》

未完待补充ing。。。。。。。。。。