HTML入门9
这一篇着眼于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的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
随机推荐
- Quartz.net 3.x使用总结(一)——入门介绍
1.Quartz.net简介 Quartz.NET是一个强大.开源.轻量级的任务调度框架.任务调度在我们的开发中经常遇到,如说:每天晚上三点让程序或网站执行某些代码,或者每隔5秒种执行一个方法等.Wi ...
- 关于java集合的练习
关于java集合的练习 练习一:Collection集合练习 一.产生10个1-100的随机数,并放到一个数组中,把数组中大于等于10的数字放到一个list集合中,并打印到控制台. public cl ...
- [Android] Android 实现类似 今日头条 视频播放列表
演示实例如下: Talk is cheap. Show me the code 话不多说,代码在这里下载! https://github.com/wukong1688/Android_BaseVide ...
- Python中__get__, __getattr__, __getattribute__的区别及延迟初始化
本节知识点 1.__get__, __getattr__, __getattribute__的区别 2.__getattr__巧妙应用 3.延迟初始化(lazy property) 1.__get__ ...
- lsof/netstat命令的一个重要作用: 根据进程查端口, 根据端口查进程
我们知道, 根据ps -aux | grep xxx就是很快实现进程名和进程号的互查, 所以我们只说进程号pid就行. 如下示例中, 进程pid常驻. 1. 根据进程pid查端口: lsof -i ...
- pythonのdjango CSRF简单使用
一.简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功 ...
- 使用SSH的scp命令行传输文件到远程服务器
使用方式如下: 1.上传本地文件到服务器 scp /path/filename username@servername:/path/例如scp /var/www/test.php root@192.1 ...
- Redis 如何实现持久化
1.RDB 持久化,将 Redis 在内存中的的状态保存到硬盘中,相当于备份数据库状态. 2.AOF 持久化(Append-Only-File),AOF 持久化是通过保存 Redis 服务器锁执行的写 ...
- 【原创】大数据基础之Spark(7)spark读取文件split过程(即RDD分区数量)
spark 2.1.1 spark初始化rdd的时候,需要读取文件,通常是hdfs文件,在读文件的时候可以指定最小partition数量,这里只是建议的数量,实际可能比这个要大(比如文件特别多或者特别 ...
- Windows系统中python3.7安装数据可视化模块Matplotlib、numpy的各种方法汇总
安装环境:Windows10 64位Python3.7 32位 确保已经安装PIP工具命令窗口输入PIP出现以下窗口说明PIP已经成功安装 方法1:(1)在Matplotlib的官网下载电脑对应的版本 ...