HTML5之视频功能
1、Web上的视频
直到现在,仍然不存在一项旨在网页上显示视频的标准。
今天,大多数视频是通过插件(比如 Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。
HTML5 规定了一种通过 video 元素来包含视频的标准方法。
2、视频格式
当前,video 元素支持三种视频格式:
格式 |
IE |
Firefox |
Opera |
Chrome |
Safari |
Ogg |
No |
3.5+ |
10.5+ |
5.0+ |
No |
MPEG 4 |
9.0+ |
No |
No |
5.0+ |
3.0+ |
WebM |
No |
4.0+ |
10.6+ |
6.0+ |
No |
注:
Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件
MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件
WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件
3、工作模式
如需在 HTML5 中显示视频,所需要的是:
<video src="movie.ogg" controls="controls"> </video>其中, src="movie.ogg" 指视频的本地地址; controls="controls" 指control 属性,供添加播放、暂停和音量控件。
若想制定视频的宽度和高度,<video>与 </video> 之间插入的内容是供不支持 video 元素的浏览器显示的,则:
<video src="movie.ogg" width="320" height="240" controls="controls"> Your browser does not support the video tag. </video>
注:
上面的例子使用一个 Ogg文件,适用于Firefox、Opera 以及 Chrome 浏览器。
要确保适用于 Safari浏览器,视频文件必须是 MPEG4 类型。
video 元素允许多个 source 元素。source 元素可以链接不同的视频文件。浏览器将使用第一个可识别的格式:
<video width="320" height="240" controls="controls"> <source src="movie.ogg" type="video/ogg"> <source src="movie.mp4" type="video/mp4"> Your browser does not support the video tag. </video>
注:InternetExplorer 8 不支持 video 元素。在 IE 9 中,将提供对使用 MPEG4 的 video 元素的支持。
4、<video> 标签的属性
属性 |
值 |
描述 |
autoplay |
如果出现该属性,则视频在就绪后马上播放。 |
|
controls |
如果出现该属性,则向用户显示控件,比如播放按钮。 |
|
pixels |
设置视频播放器的高度。 |
|
loop |
如果出现该属性,则当媒介文件完成播放后再次开始播放。 |
|
preload |
如果出现该属性,则视频在页面加载时进行加载,并预备播放。 如果使用 "autoplay",则忽略该属性。 |
|
url |
要播放的视频的 URL。 |
|
pixels |
设置视频播放器的宽度。 |
5、HTML5 <video> - 使用 DOM 进行控制
HTML5 <video> 元素同样拥有方法、属性和事件。
其中的方法用于播放、暂停以及加载等。其中的属性(比如时长、音量等)可以被读取或设置。其中的 DOM 事件能够通知您,比方说,<video> 元素开始播放、已暂停,已停止,等等。
下例中简单的方法,向我们演示了如何使用 <video> 元素,读取并设置属性,以及如何调用方法。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>在线视频播放器</title> </head> <body> <div style="text-align:center;"> <button onclick="playPause()">播放/暂停</button> <button onclick="makeBig()">大</button> <button onclick="makeNormal()">中</button> <button onclick="makeSmall()">小</button> <br /> <video id="videos/movie.mp4" width="420" style="margin-top:15px;"> <source src="videos/movie.mp4" type="video/mp4"> Your browser does not support the video tag. </video> </div> <script type="text/javascript"> var myVideo=document.getElementById("videos/movie.mp4"); function playPause() { if (myVideo.paused) myVideo.play(); else myVideo.pause(); } function makeBig() { myVideo.width=560; } function makeSmall() { myVideo.width=320; } function makeNormal() { myVideo.width=420; } </script> </body> </html>
上面的例子调用了两个方法:play()和 pause()。它同时使用了两个属性:paused 和 width。
运行效果如下图:6、HTML5 <video> - 方法、属性以及事件
下面列出了大多数浏览器支持的视频方法、属性和事件:
方法 |
属性 |
事件 |
play() |
currentSrc |
play |
pause() |
currentTime |
pause |
load() |
videoWidth |
progress |
canPlayType |
videoHeight |
error |
|
duration |
timeupdate |
|
ended |
ended |
|
error |
abort |
|
paused |
empty |
|
muted |
emptied |
|
seeking |
waiting |
|
volume |
loadedmetadata |
|
height |
|
|
width |
|
注释:在所有属性中,只有videoWidth 和 videoHeight 属性是立即可用的。在视频的元数据已加载后,其他属性才可用。