第六十六节,htnl音频视频
htnl音频视频
学习要点:
1.音频和视频概述
2.video视频元素
3.audio音频元素
本章主要探讨HTML5中音频和视频元素,通过这两个原生的媒体元素向HTML页面中嵌入音频和视频。
一.音频和视频概述
首先,我们要理解两个概念:容器(container)和编解码器(codec)。
1.视频容器
音频文件或视频文件,都只是一个容器文件。视频文件包含了音频轨道、视频轨道和其他一些元数据。视频播放时,音频轨道和视频轨道是绑定在一起的。元数据包含了视频的封面、标题、子标题、字幕等相关信息。主流视频容器支持的格式为:.avi、.flv、.mp4、.mkv、 .ogg、.webm。
2.编解码器
音频和视频编码/解码是一组算法,用来对一段特定音频或视频进行解码和编码,以便音频和视频能够播放。原始的媒体文件体积非常巨大,如果不对其进行编码,那么数据量是 非常惊人的,在互联网上传播则要耗费无法忍受的时间;如果不对其进行解码,就无法将编码后的数据重组为原始的媒体数据。主流的音频编解码器:AAC、MPEG-3、Ogg Voribs,视频编解码器:H.264、VP8、Ogg Theora。
3.浏览器支持情况
起初,HTML5规范本来打算指定编解码器,但实施起来极为困难。部分厂商已有自己的标准,不愿实现标准;而有一些编解码器受专利保护,需要支付昂贵费用。最终放弃了统一 规范的要求,导致各个浏览器实现自己的标准。
容器格式 视频编解码 音频编解码 IE9+ Firefox5+ Chrome13+
WebM VP8 Vorbis × √ √
OGG Theora Vorbis × √ √
MPEG-4 H.264 AAC √ × 疑问?
除了上面三款浏览器,还有Safari5+支持MPEG-4,Opera11支持WebM和OGG,通过这组数据,只要备好MP4和OGG格式的即可,但对于新的高清标准WebM,当然是非常必要的。因为WebM不但清晰度高,而且免费,不受限制许可的使用源码和专利权。目前Chrome浏览器,为了推广WebM格式的视频。声称未来将放弃H.264编码的视频,所以有可能在以后的版本中无法播放MP4的视频。当然,目前演示的版本还是支持的。
二.video视频元素
以往的视频播放,需要借助Flash插件才可以实现。但Flash插件的不稳定性经常让浏览器导致崩溃,因此很多浏览器或系统厂商开始抛弃它。而取代它的正是HTML5的video元素。
<video>元素的属性
属性名称 说明
src 视频资源的URL
width 视频宽度
height 视频高度
autoplay 设置后,表示立刻开始播放视频
preload 设置后,表示预先载入视频
controls 设置后,表示显示播放控件
loop 设置后,表示反复播放视频
muted 设置后,表示视频处于静音状态
poster 指定视频数据载入时显示的图片
1.嵌入一个WebM视频
<video src="3456.mp4" width="800" height="600"></video>
解释:<video>插入一个视频,主流的视频为.webm,.mp4,.ogg等。src表示资源URL;width表示宽度;height表示高度。
2.附加一些属性
<video src ="3456.mp4" width="800" height="600" autoplay controls loop muted></video>
效果:

解释:autoplay表示自动开始播放;controls表示显示播放控件;loop表示循环播放;muted表示静音。
3.预加载设置
<video src="3456.mp4"width="800" height="600"controls preload="none"></video>
解释:preload属性有三个值:none表示播放器什么都不加载;metadata表示播放之前只能加载元数据(宽高、第一帧画面等信息);auto表示请求浏览器尽快下载整个视 频。
4.使用预览图,定义缩略图
<video src="3456.mp4" width="600" height="400" controls poster="22.png"></video>
效果:

解释:poster属性表示在视频的第一帧,做一张预览图。
5.兼容多个浏览器
<video width="800" height="600" controls poster="img.png"> <!--设置宽度和高度,和缩略图-->
<source src="test.webm"> <!--不同的浏览器,支持不同的格式,浏览器会根据自己支持的格式来选择播放-->
<source src="test.mp4">
<source src="test.ogg">
<object>这里引入flash播放器实现IE9以下,但没必要了</object>
</video>
解释:通过<source>元素引入多种格式的视频,让更多的浏览器保持兼容。
二.audio音频元素
和video元素一样,audio元素用于嵌入音频内容,而音频元素的属性和视频元素类似。音频的支持度和视频类似,使用<source>元素引入多种格式兼容即可。主流的音频格式有:.mp3,.m4a,.ogg,.wav。
属性名称 说明
src 视频资源的URL
autoplay 设置后,表示立刻开始播放视频
preload 设置后,表示预先载入音频
controls 设置后,表示显示播放控件
1.嵌入一个音频
<audio src="666.mp3" controls autoplay></audio>
效果:

解释:和嵌入视频一个道理。
2.兼容多个浏览器
<audio controls> <!--定义音频文件,显示控件-->
<source src="666.mp3"> <!--各种浏览器支持不同的格式,浏览器根据支持情况选择播放-->
<source src="test.m4a">
<source src="test.wav">
</audio>
解释:略。
PS:更多设计到API的JavaScript控制,将在以后的基于JavaScript基础后讲解。
第六十六节,htnl音频视频的更多相关文章
- 第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能
第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能 Django实现搜索功能 1.在Django配置搜索结果页的路由映 ...
- 第三百六十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的bool组合查询
第三百六十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的bool组合查询 bool查询说明 filter:[],字段的过滤,不参与打分must:[] ...
- 第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询
第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询 1.elasticsearch(搜索引擎)的查询 elasticsearch是功能 ...
- 第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理
第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理 1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字 ...
- “全栈2019”Java第六十六章:抽象类与接口详细对比
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)
1.简介 在自动化测试,有些我们的测试数据是放到excel文件中,尤其是在做数据驱动测试的时候,所以需要懂得如何操作获取excel内的内容.由于java不像python那样有直接操作Excle文件的类 ...
- 第六十八节,htnl全局属性和其他属性
htnl全局属性和其他属性 学习要点: 1.实体 2.元数据 3.全局属性 本章主要探讨HTML5中的HTML实体.以及HTML核心构成的元数据,最后了解一下HTML中的全局属性. 一.实体 HTML ...
- 第二百六十五节,xss脚本攻击介绍
xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...
- 第六十九节,css入门基础
css入门基础 学习要点: 1.使用CSS 2.三种方式 3.层叠和继承 本章主要探讨HTML5中CSS (层叠样式表),它是用来对HTML文档外观的表现形式进行排版和格式化. 一 使用CSS CSS ...
随机推荐
- Microsoft Edge与Google Chrome那些不同的举止
以下针对14393版本Edge与Chrome 54 html dom/select的如果options里没有符合的值时edge会选择第一个,chrome(54)会置空选项 html dom/input ...
- 【.NET】字符串处理类库
类名:DealString,方法清单列好在头上. /// 1.截取字符串,最后加3个小数点 /// 2.获得指定Url的参数的string类型值 /// 3.判断数据类型 /// 4.过滤JS标记 / ...
- 关于在框架中使用curl的思考,以及,curl其实很好用
初步猜想: 在接触到框架文档的第一阶段时,会觉得控制器调用模型就是一件很简单的事,tp中用D方法或者M方法来实例化模型,laravel中用命名空间来加载模型,CI中用$this->load-&g ...
- 基于Unity的Profiler性能分析
A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体时间-所有单项的记录时 ...
- C# CodeHelper
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using Syste ...
- C++四种cast操作符
C 风格(C-style)强制转型如下: (T) expression 或 T(expression) //函数风格(Function-style) 两种形式之间没有本质上的不同. 对于具有转换的简 ...
- swift3 控件创建
//MARK:- UIScrollView let scrollView = UIScrollView() scrollView.delegate = target scrollView.backgr ...
- RSA算法记录----摘抄
RSA算法原理(一) "公钥加密算法". 因为它是计算机通信安全的基石,保证了加密数据不会被破解.你可以想象一下,信用卡交易被破解的后果. 进入正题之前,我先简单介绍一下,什么 ...
- iOS缓存
存储缓存: 第三方应用只能把信息保存在应用程序的沙盒中.因为缓存数据不是用户产生的,所以它应该被保存在NSCachesDirectory,而不是NSDocumentsDirectory.为缓存数据创建 ...
- 各种文件的ContentType
CONTENT_TYPE = { 16 '.load': 'text/html', 17 '.123': 'application/vnd.lotus-1-2-3', 18 '.3ds': 'imag ...