HTML5 Video 标签播放及控制视频

移动开发
Video 是 HTML5 中新增的标签,使用 Video 标签可以播放 ogg、mp4、webm 等格式的视频,Video 标签的引入,减少前端页面对 Flash 动画的依赖。

Video 是 HTML5 中新增的标签,使用 Video 标签可以播放 ogg、mp4、webm 等格式的视频,Video 标签的引入,减少前端页面对 Flash 动画的依赖。

0x0 预备知识

不同的浏览器支持的视频格式可能不同,以下是摘自 W3School 各个浏览器对三种视频格式的支持情况:

浏览器对视频格式的支持

0x1 在 Video 中嵌入视频

  1. <video src="/movie.mp4" controls="controls"
  2. 你就用这个浏览器有出息吗? 
  3. </video> 

当页面载入时,会引用 movie.mp4 文件,如果浏览器无法支持 HTML5,则会提示 Video 中的内容。

显然,为适应不同的浏览器,我们也需要准备多种不同的格式的视频,并使用 video 引用它们:

  1. <video controls="controls"
  2. <source src="/movie.mp4" type="video/mp4"
  3. <source src="/movie.ogg" type="video/ogg"
  4. 你就用这个浏览器有出息吗? 
  5. <video> 

0x2 使用 Video 的控制属性

Video 提供多个属性,通过各个属性可以控制相关的功能。例如 controls 为视频提供进度、音量、全屏的控制。尽管属性与值对应,但是我们仍然可以使用 controls 来代替 controls = “controls”。

下面的代码提供自动缓存、静音、及控制条:

 

  1. <video autobuffer muted controls> 
  2. <source src="/movie.mp4" type="video/mp4"
  3. <source src="/movie.ogg" type="video/ogg"
  4. 你就用这个浏览器有出息吗? 
  5. <video> 

自动播放并循环:

 

  1. <video autoplay loop controls> 
  2. <source src="/movie.mp4" type="video/mp4"
  3. <source src="/movie.ogg" type="video/ogg"
  4. 你就用这个浏览器有出息吗? 
  5. <video>  

0x3 使用 HTML DOM 控制 Video 播放

基本的播放、暂停、静音功能控制:

 

  1.  <button onclick="play()">播放/暂停</button> 
  2. <button onclick="mute()">静音</button> 
  3.  
  4. <video id="player" controls> 
  5. <source src="/movie.mp4" type="video/mp4"
  6. <source src="/movie.ogg" type="video/ogg"
  7. 你就用这个浏览器有出息吗? 
  8. <video> 
  9.  
  10. <script> 
  11. function play() { 
  12. var player = document.getElementById("player"); 
  13. if(player.play) { 
  14. player.pause(); 
  15. }else { 
  16. player.play(); 
  17.  
  18. function mute() { 
  19. var player = document.getElementById("player"); 
  20. player.muted = player.muted ? false : true
  21. </script> 

通常在一些视频网站上,会记录用户上次播放视频的进度,当用户再次进入网站的时候,就可以在停下来的地方继续观看。我们可以通过HTML DOM来控制视频播放进度:

 

  1.  <video id="player" controls> 
  2. <source src="/movie.mp4" type="video/mp4"
  3. <source src="/movie.ogg" type="video/ogg"
  4. 你就用这个浏览器有出息吗? 
  5. <video> 
  6.  
  7. <script> 
  8. document.getElementById("player").addEventListener( 
  9. "loadedmetadata"
  10. function() { 
  11. this.currentTime = 5
  12. }); 
  13. </script> 

通过 JavaScript 调整 Video 的 currentTime 属性来实现进度控制,注意单位为秒而非毫秒。由于 JavaScript 需要获取视频的总时间以便进行调整,所以在控制进度之前,需要等待视频信息加载完成。所以,我们为 Video 对象绑定 loadedmetadata 事件,该事件在视频信息加载完毕时触发。

责任编辑:chenqingxiang 来源: soxfmr的博客
相关推荐

2012-05-03 09:51:09

HTML5

2010-06-24 09:54:50

HTML 5Video标签

2023-07-24 13:22:35

VideoHTML5Web

2017-01-11 10:57:29

video使用JS库

2009-06-11 10:59:07

HTML5Flash插件

2014-03-20 10:50:44

HTML5 定位技术

2012-05-18 15:10:22

HTML5

2010-03-09 08:44:59

HTML 5YouTube

2010-03-19 10:02:18

HTML 5视频标签

2013-01-24 10:26:04

HTML5HTML 5HTML5的未来

2012-04-05 13:19:06

WEBHTML5

2012-03-07 15:24:41

2011-05-13 17:36:05

HTML

2013-10-21 15:24:49

html5游戏

2012-05-25 14:20:08

JavaScript

2012-06-04 13:44:08

2011-05-13 17:41:40

2011-01-14 17:53:33

HTML5cssweb

2023-03-16 09:00:00

HTML5HTML语言

2011-05-12 15:42:16

HTML5
点赞
收藏

51CTO技术栈公众号