这一篇着眼于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. CMDB资产管理系统开发【day26】:数据正式存入待存区

    1.from表单提交 1.数据提交到哪里呢? 提交到assets/new_assets_approval.html这了 2.Yes, I'm sure提交了什么?          为什么没有下拉框了 ...

  2. Elasticsearch-基础介绍及索引原理分析(转载)

    最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elastic ...

  3. 第十二节: EF的三种模式(二) 之 ModelFirst模式(SQLServer为例)

    一. 简介  顾名思义,ModelFirst是模型优先,是DBFirst的逆向模式,先建立实体数据模型,然后根据实体数据模型来生成数据库,从而驱动整个开发流程.(生成一个空的edmx文件,手动在里面建 ...

  4. 深入学习javaScript闭包(闭包的原理,闭包的作用,闭包与内存管理)

    前言 虽然JavaScript是一门完整的面向对象的编程语言,但这门语言同时也拥有许多函数式语言的特性. 函数式语言的鼻祖是LISP,JavaScript在设计之初参考了LISP两大方言之一的Sche ...

  5. tex 字体斜体设置

    \upshape 切换成直立的字体\itshape 切换成意大利斜体\slshape 切换成成为 slanted 的斜体\scshape 切换成小体大写 http://www.tug.dk/FontC ...

  6. [物理学与PDEs]第1章第8节 静电场和静磁场 8.2 稳定电流的电场

    1. 此时, Maxwell 方程组为 $$\beex \bea \Div{\bf D}&=\rho_f,\\ \rot {\bf E}&={\bf 0},\\ \Div{\bf B} ...

  7. 迅为iTOP-4418/6818开发板-驱动-实现GPIO扩展

    实现 GPIO 扩展,先弄清楚“复用”的概念,将调用这些 GPIO 的驱动去掉配置,重新编译,加到自己的驱动中,就可以实现扩展的 GPIO 的输入和输出.另外必须要先看文档“迅为iTOP-4418开发 ...

  8. 【原创】Linux基础之上传下载

    1 rz sz 安装 yum install -y lrzsz 上传 rz ,对话框操作 下载 sz $filename 注意:rz不能上传大于4g的文件,此时可以改为scp或sftp上传,其中sft ...

  9. 今天聊一聊Java引用类型的强制类型转换

    实际上基本类型也是存在强制类型转换的,这里简单提一下.概括来讲分为两种: 1.自动类型转换,也叫隐式类型转换,即数据范围小的转换为数据范围大的,此时编译器自动完成类型转换,无需我们写代码 2.强制类型 ...

  10. C语言学习及应用笔记之六:C语言extern关键字及其使用

    在C语言中,修饰符extern用在变量或者函数的声明前,用来以标识变量或者函数的定义在别的文件中,提示编译器遇到此变量或者函数时,在其它文件中寻找其定义.extern关键字的用法有几种,我们下面对其进 ...