这一篇着眼于HTML里的音频和视频标签及相关处理;

  传统技术不能再web中使用音频和视频,一致使用Flash后来因为一些HTML/CSS特性,安全问题,慢慢退出。在HTML5提出后,新特性<video><audio>标签,不考虑制作流程,如何使用这些音频视频文件,进行实验。video标签 嵌入一段视频,代码示例

<video src="rabbit320.webm" controls>

  <p>your browser doesn't support

Here is a <a href="rabbit320.webm">link to the video</a> instead

</p>

</video>

src 属性同img标签一样都是用来指向嵌入网页当中的视频资源,  controls 控制视频和音频的回放功能,这些媒体应该包括开始和停止以及音量调整等功能;

<video> 标签内的段落一旦浏览器不支持video时会显示出来,作用类似img 里的alt文本,同时提供了一个指向视频的链接地址,如果不能显示video,那么通过链接可以访问到文件,很好兼容;

  了解关于容器的格式mp3  mp4  webm

webm 容器包括ogg vorbis音频和VP8/VP9视频,用在firefox和chrome

MP4容器  包括AAC和MP3音频和H.264视频,主要用在IE和safari.

老式ogg容器往往支持ogg Vorbis 音频和Ogg Theora视频,主要在firefox和chrome支持,现在被webm容器所取代,音频文件会直接播放,不需要容器。浏览器并不会支持所有的格式,那么有的媒体文件将不会播放,因此这种情况下,改善的做法就是去掉video里的src属性额外添加source元素包裹src示例:

<video>

  <source src="rabbit32.mp4" type="video/mp4">

  <source src="rabbit32.webm" type="video/webm">

  <p>your browsere dose't support HTML5 video .here is a<a href="rabbit320.mp4">link to the video</a> instead.

</p>

</video>

这样浏览器会检查source标签,播放第一个能播放的媒体,因此视频格式也应该包含webm和MP4两种格式,以支持大多数平台和浏览器,注意,应该加上type属性,让浏览器锁定到指定的播放器格式,如果不加浏览器会加载每一个文件,直到找到正确的播放格式i,会消耗大量时间。

同样可以给video元素添加一些其他布尔属性, 下面具体解释下个属性的含义

autoplay  添加后视频会立即播放,即使页面还么有加载完,建议不添加,谁也不喜欢自动播放视频

loop 让视频和音频文件循环播放,

muted 导致媒体播放时默认关闭声音

poster 指向一个url 图像会在播放前显示 ,粗劣的广告或预览;

preload  缓冲较大的文件,三个值可选preload ="none" 不缓冲, auto  页面加载完缓存媒体文件,metadata 仅缓存文件的元数据

再来了解下<audio>标签, 使用方式于video几乎一样,音频的控件要比视频的控件要小,指定媒体播放类型的时候,应该为audio/mp3 或者audio/ogg两种方式,而且auio不支持width和height属性,由于并没有实觉部件所以不需要,同样poster属性也不使用。

  下面讨论下音轨文本,相当于兼容阅读器用户或者听不懂语音内容的用户,添加一个副本来表示音频内容的元素,即<track>标签。WebVTT是一个格式,用来编写文本文件,包含很多的字符串,同时包含一些元数据,可以用来描述字符串在视频中显示的时间,也可以描述字符串的样式和定位信息,把这样的字符串叫cues 。可以定义显示不同的样式,subtitle 添加翻译字幕,captions同步翻译对白, timed descriptions 将文字转换为音频,服务有视觉障碍的人;

与媒体文件一起显示,需要做的工作,以.vtt后缀保存文件,用<track>标签链接.vtt文件,使用kind属性指明是哪一种类型,使用srclang告诉浏览器用什么语言编写subtitles。示例代码:

<video controls>

  <source src ="example.mp4" type="video/mp4">

  <source src="example.webm" type="video/webm">

  <track kind="subtitles" src="subtitle_en.vtt" srclang="en">

</video>

这个视频将会带有字幕。文本轨道将使得网站更容易被SEO。

  总结,这一块内容更多的视频和音频怎么用在页面上,注意哪些要素,属性选择,之类,下一篇将ifame和object 很重要。

HTML入门9的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  4. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  5. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  6. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  7. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  8. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  9. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  10. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

随机推荐

  1. Hadoop记录-queue mysql

    #!/bin/sh ip=10.116.100.11 port=8088 export HADOOP_HOME=/app/hadoop/bin rmstate1=$($HADOOP_HOME/yarn ...

  2. [再寄小读者之数学篇](2014-10-08 乘积型 Sobolev 不等式)

    $$\bex n\geq 2, 1\leq p<n\ra \sen{f}_{L^\frac{np}{n-p}(\bbR^n)} \leq C\prod_{k=1}^n \sen{\p_k f}_ ...

  3. [物理学与PDEs]第1章第7节 媒质中的 Maxwell 方程组 7.3 媒质中电磁场量的表示

    1. 电磁能量密度 $$\bex \cfrac{1}{2}({\bf E}\cdot{\bf D}+{\bf B}\cdot{\bf H}). \eex$$ 2. 电磁能量流密度向量 $$\bex { ...

  4. 关于并查集的路径压缩(Path Compress)优化

    之前在CSDN看到一篇很受欢迎的讲解并查集的博文,其中自然用到了路径压缩: int pre[1000]; int find(int x){ int root = x; while(pre[root]! ...

  5. windows服务器基本管理及服务搭建

    windows服务器基本管理及服务搭建 ****windows服务器系统版本:2000 2003 2008 2012 1.用户与组管理 用户:账户=账号/用户名+密码 每个账户有自己唯一的SID 账户 ...

  6. Contest1874 - noip基础知识五:动态规划(背包、树dp、记忆化、递推、区间、序列dp、dp优化)

    传送门 T1  dp[n][m]=dp[n-1][m-1]+dp[n-m][m] T2  ans=cat(n)*(n!)2  卡特兰数 T3  dp[i][j]=sigma(dp[i-1][j-a[i ...

  7. 学习熟悉箭头函数, 类, 模板字面量, let和const声明

    箭头函数:https://blog.csdn.net/qq_30100043/article/details/53396517 类:https://blog.csdn.net/pcaxb/articl ...

  8. vmware 14 密钥

    VMware 2017 v14.x 永久许可证激活密钥 FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD 来源链接: http:/ ...

  9. 关于sniff函数的一个小坑

    最近在用scapy模块写一个关于WiFi的脚本时用到sniff函数,其中遇到了一个小坑,记录如下: sniff函数是在指定网卡上每次嗅探到一个数据包后然后将它传给prn指定的函数.

  10. java入门需了解的历史

    1991年,Sun公司的Green项目,Oak 1995年,推出Java测试版 1996年,JDK1.0 1997年,JDK1.1 1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版 ...