前言: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。。。。。。。。。。