HTML 5加入视频标签<Video>,无疑是HTML 5的一大亮点。本文一起来学习下吧。

Video标签介绍 

大多数用户已经安装了Flash插件(事实上,大概95%的上网用户都装有Flash的某个版本),但HTML 5的支持者正在推动一个开放的,不需要任何插件的视频标准。这就是HTML 5的新标签<video>带来的构想,他提供了一个嵌入视频(以及与其交互)而不需要类似Flash的私有插件的方法。

不幸的是,视频并非那么简单。不仅仅是浏览器需要理解<video>标签,而且需要一个必要的编码译码器来播放视频。明显的解决方法只能是HTML 5规范的缔造者们选择一个视频编码译码器,并且让每一个浏览器制造商执行。

总之,这就是所推荐的打算。同时,这也是引起混乱的导火索。对于各种各样编码译码器的争论就已经很烦杂了,但更悲剧的事情是,浏览器制造商们还不能就此达成统一。苹果不愿意使用提议的Ogg Theora编码译码器,但Opera和Mozilla也不愿意支付由于他们的浏览器装载H.264编码译码器而造成的许可费用。Google同时支持两者,微软面对争论,远远的置身事外,因为他现在根本没有计划去支持HTML 5的视频元素。 
面对浏览器制造商的僵持局面,HTML 5善意的独裁者Ian Hickson甩了甩他的手并说到去他妈的。所以HTML 5规范中没有特别指名或规定的视频编码解码器。”好吧,引用到这儿。 
如今的情况是,微软终于陷进去了,但很悲剧的是,在IE 9中只支持H.264。同时,Googe终于在I/O大会上发布了开源的视频封装格式webM和视频编码格式VP8。Opera、Mozilla、Chrome宣布将完全支持VP8,IE宣布部分支持(需要装一个插件,但如果我没记错的话,HTML 5的一个愿景就是脱离浏览器插件,微软真是让人觉得悲剧)。 
苹果决定不支持VP8,乔布斯认为VP8在质量或效率方面不如H.264,不能满足其产品的要求。另外最新消息表明VP8还有可能牵扯到专利的问题(如果真的侵犯专利的话,Opera和Firefox估计马上会无视VP8的)。 
说了这么多,其实说到底就是,现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera、Mozilla、Chrome),支持H.264的(Safari、IE 9、Chrome),都不支持的(IE6、7、8)。好吧,现在让我们从技术层面来认识HTML 5的视频,包括video标签的使用,视频对象可以用到的媒介属性和方法,以及媒介事件。

Video标签的使用

Video标签含有src、poster、preload、autoplay、loop、controls、width、height等几个属性,以及一个内部使用的标签<source>。Video标签内除了可以包含<source>标签外,还可以包含当指定的视频都不能播放时,返回的内容。

(1) src属性和poster属性 

你能想象src属性是用来干啥的。跟<img>标签的一样,这个属性用于指定视频的地址。而poster属性用于指定一张图片,在当前视频数据无效时显示(预览图)。视频数据无效可能是视频正在加载,可能是视频地址错误等等。

(2) preload属性 

这个属性也能通过名字了解用处,此属性用于定义视频是否预加载。属性有三个可选择的值:none、metadata、auto。如果不使用此属性,默认为auto。

None:不进行预加载。使用此属性值,可能是页面制作者认为用户不期望此视频,或者减少HTTP请求。

Metadata:部分预加载。使用此属性值,代表页面制作者认为用户不期望此视频,但为用户提供一些元数据(包括尺寸,第一帧,曲目列表,持续时间等等)。

Auto:全部预加载。

(3) autoplay属性 

又是一个看名字知道用处的属性。Autoplay属性用于设置视频是否自动播放,是一个布尔属性。当出现时,表示自动播放,去掉是表示不自动播放。

注意,HTML中布尔属性的值不是true和false。正确的用法是,在标签中使用此属性表示true,此时属性要么没有值,要么其值恒等于他的名字(此处,自动播放为<video autoplay />或者<video autoplay=”autoplay” />);而在标签中不使用此属性表示false(此处不进行自动播放为<video />)。

(4) loop属性 

一目了然,loop属性用于指定视频是否循环播放,同样是一个布尔属性。

(5) controls属性 
Controls属性用于向浏览器指明页面制作者没有使用脚本生成播放控制器,需要浏览器启用本身的播放控制栏。

控制栏须包括播放暂停控制,播放进度控制,音量控制等等。 
每个浏览器默认的播放控制栏在界面上不一样。由于我浏览器的诡异问题,Firefox和Safari的Video标签不正常,所以这两个只能在网上找截图了。
 
(6) width属性和height属性 
属于标签的通用属性了,这个不用多说。

(7) source标签 
Source标签用于给媒体(因为audio标签同样可以包含此标签,所以这儿用媒体,而不是视频)指定多个可选择的(浏览器最终只能选一个)文件地址,且只能在媒体标签没有使用src属性时使用。

浏览器按source标签的顺序检测标签指定的视频是否能够播放(可能是视频格式不支持,视频不存在等等),如果不能播放,换下一个。此方法多用于兼容不同的浏览器。Source标签本身不代表任何含义,不能单独出现。 
此标签包含src、type、media三个属性。 
src属性:用于指定媒体的地址,和video标签的一样。 
Type属性:用于说明src属性指定媒体的类型,帮助浏览器在获取媒体前判断是否支持此类别的媒体格式。

Media属性:用于说明媒体在何种媒介中使用,不设置时默认值为all,表示支持所有媒介。你想到<style>标签的media属性了么?一样一样一样的。

(8) 一个完整的例子 
这段代码在页面中定义了一个视频,此视频的预览图为poster的属性值,显示浏览器的默认媒体控制栏,预加载视频的元数据,循环播放,宽度为900像素,高度为240像素。

第一选择视频地址为第一个source标签的src属性值,视频类别为Ogg视频,视频编码译码器为Theora,音频编码译码器为Vorbis,播放媒介为显示器;第二选择视频地址不再累述。如果你还要兼容IE的话,可以在最后一个source标签后再加上Flash播放器的标签集,或者使用一点JavaScript代码。

html5 video视频标签相关推荐

  1. html5 video 视频标签详解

    现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera.Mozilla.Chrome),支持H.264的(Safari.IE ...

  2. html5前端Video视频标签和audio音频标签的使用

    html5前端Video视频标签和audio音频标签的使用 h5新特性中关于Video视频标签和audio音频标签的使用和浅谈 一.Video视频标签 video标签是h5新特性中用来播放视频的控件, ...

  3. html video各种控制命令,HTML5 Video(视频)

    HTML5 Video(视频) 很多站点都会使用到视频. HTML5 提供了展示视频的标准. 检测您的浏览器是否支持 HTML5 视频: 检测 Web站点上的视频 直到现在,仍然不存在一项旨在网页上显 ...

  4. HTML5新增视频标签(HTML5)

    HTML5新增视频标签(HTML5) <!DOCTYPE html> <html lang="en"><head><meta charse ...

  5. HTML5 video视频制作,控制按钮

    HTML5 video视频制作,控制按钮 运用html5 vedio标签,结合JavaScript完成对播放,暂停,静音,全屏,加速,减速,快进,后退,音量控制,时长控制功能的实现 以下为所写代码 & ...

  6. jTemplates异步加载实现与HTML5 video视频开发

    最近做有关Web App有关的项目,为了动态加载相应速度更快,采用了以下几个策略: 1.PHP后台提交自动生成静态列表页面. 2.PHP后台提交自动生成列表页资源/文章的json数据文件,javasc ...

  7. HTML5 Video(视频),HTML 音频(Audio)

    HTML5 Video(视频), 很多站点都会使用到视频. HTML5 提供了展示视频的标准. 检测您的浏览器是否支持 HTML5 视频: 检测 Web站点上的视频 直到现在,仍然不存在一项旨在网页上 ...

  8. js实现video视频标签试看6分钟

    js实现video视频标签试看6分钟的功能 解决方法: 下面是实现试看视频6分钟的js代码,通过video标签的timeupdate事件来实现:http://www.yayihouse.com/yay ...

  9. HTML5 video视频字幕的使用和制作

    首先先看一下原生HTML5 video对字幕的支持显示情况: 元素 HTML5允许我们使用元素为视频指定字幕.这个元素的各种属性允许我们指定这样的东西,比如我们添加的内容的类型,它所在的语言,当然还有 ...

最新文章

  1. 计算机网络实验四:利用UDP协议实现点对点聊天
  2. Linux单用户模式、救援模式、克隆虚拟机与Linux机器互相登录
  3. mysql explain 索引_MySql中Explain详解与索引最佳实践
  4. java解码_Java数组已排序解码
  5. JSON简介,语法,在html中应用
  6. C++基础10-类和对象之友元函数
  7. linux命令txt,Linux常用命令(非常详细!)
  8. es6 Generator函数概述
  9. 限制对象在堆或栈中声明
  10. 使用阿里云Mysql集群做读写分离_以及使用阿里云服务器自己搭建MyCat集群_费用核算---Linux工作笔记046
  11. (转)SQLServer_十步优化SQL Server中的数据访问 三
  12. java 二叉树_拼多多Java开发1234面:二叉树+负载均衡+MySQL+Redis+高并发
  13. 第一次装TFS的曲折经历
  14. Deep learning:三十四(用NN实现数据的降维)
  15. 修改数据库密码的多种方法
  16. SpringCloud之Hystrix集群及监控turbine
  17. OpenSSH创建秘钥的4种格式以及git多秘钥配置
  18. “char”知多少。
  19. div vue 图片背景_div设置背景(vue设置div的背景图片)
  20. 晶体三极管原理及应用

热门文章

  1. linux(xshell的安装与使用)
  2. 《Linux驱动:Nor flash驱动看这一篇就够了》
  3. 取消IPV4自动配置
  4. vimdiff颜色设置 + vimrc设置 (copied)
  5. 【数字图像处理】图像锐化:拉普拉斯算子(Laplacian)、高通滤波、Sobel算子、Isotropic算子、Prewitt算子
  6. 将波旁威士忌的整洁Mixins提升到新的水平
  7. Rockland Immunochemicals丨GFP抗体-荧光素结合物
  8. 四大思维工具,SWOT、PDCA、DISC、时间管理
  9. webpack-dev-server(devServer)
  10. D3 天眼查 股权穿透 股权结构