第8章 多媒体嵌入

2024-01-04

学习目标

  • 了解视频、音频嵌入技术,能够总结HTML5视频、音频嵌入技术的优点。

  • 了解常用的视频文件格式和音频文件格式,能够归纳HTML5支持的视频和音频格式。

  • 掌握HTML5中视频的嵌入方法,能够在HTML5页面中添加视频文件。

  • 掌握HTML5中音频的嵌入方法,能够在HTML5页面中添加音频文件。

  • 了解HTML5中视频、音频的兼容性,能够制作视频、音频兼容性较好的网页。

  • 熟悉调用网络音频、视频文件的方法,能够调用网络中的音频、视频文件。

  • 熟悉CSS控制视频宽度和高度的方法,能够在网页中设置视频宽度和高度。

在网页设计中,多媒体技术主要是指在网页上运用音频、视频传递信息的一种方式。在网络传输速度越来越快的今天,视频和音频技术已经被越来越广泛的应用在网页设计中,比起静态的图片和文字,音频和视频可以为用户提供更直观、丰富的信息。本章将对HTML5多媒体的特性以及嵌入音频和视频的方法进行详细讲解。

8.1 视频、音频嵌入技术概述

8.1.1视频、音频嵌入技术概述

在HTML5出现之前并没有将视频和音频嵌入到页面的标准方式,多媒体内容在大多数情况下都是通过第三方插件或集成在Web浏览器的应用程序置于页面中。

运用HTML5中新增的video标签和audio标签来嵌入视频或音频。

浏览器 支持版本
IE浏览器 9.0及以上版本
Firefox(火狐浏览器) 3.5及以上版本
Opear(欧朋浏览器) 10.5及以上版本
Chrome(谷歌浏览器) 3.0及以上版本
Safari(苹果浏览器) 3.1及以上版本
Edge浏览器 12.0及以上版本

在不同的浏览器上运用video或audio标签时,浏览器显示音频、视频界面样式也略有不同。

8.2 HTML5支持的视频格式和音频格式

8.3 嵌入视频和音频

通过上一节的学习,相信读者对HTML5中视频和音频的相关知识有了初步了解。接下来,本节将进一步讲解视频和音频的嵌入方法,使读者能够熟练运用video标签和audio标签在网页中嵌入视频和音频文件。

8.3.1 在HTML5中嵌入视频

在HTML5中,video标签用于定义视频文件。

使用video标签嵌入视频的基本语法格式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>在HTML5中嵌入视频</title>
</head>
<body>
    <video src="video/duanwu.mp4" controls autoplay loop muted>浏览器不支持video标签</video>
</body>
</html>

在video标签中还可以添加其他属性,进一步优化视频的播放效果。

video标签常见属性:

属性 属性值 描述
autoplay autoplay 当页面载入完成后自动播放视频
loop loop 视频结束时重新开始播放
preload auto/meta/none 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性
poster url 当视频缓冲不足时,该属性值链接一个图像,并将该图像按照一定的比例显示出来

在2018年1月chrome浏览器取消了对自动播放功能的支持,也就是说autoplay属性是无效的,这时如果我们想要自动播放视频,就需要为video标签添加“muted”属性,嵌入的视频就会静音播放。

8.3.2 在HTML5中嵌入音频

在HTML5中,audio标签用于定义音频文件。

使用audio标签嵌入音频文件的基本语法格式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>在HTML5中嵌入音频</title>
</head>
<body>
    <audio src="music/1.mp3" controls="controls">浏览器不支持audio标签</audio>
</body>
</html>

在audio标签中还可以添加其他属性,来进一步优化音频的播放效果。

audio标签常见属性:

属性 描述
autoplay autoplay 当页面载入完成后自动播放音频
loop loop 音频结束时重新开始播放
preload auto/meta/none 如果出现该属性,则音频在页面加载时进行加载,并预备播放。如果使用autoplay属性,浏览器会忽略preload属性

8.3.3 视频、音频文件的兼容性问题

为什么在前途视频和音频时需要考虑浏览器的兼容性问题? 虽然HTML5支持ogg、mp4和Webm 的视频格式以及ogg、mp3和wav的音频格式,但并不是所有的浏览器都支持这些格式,因此我们在嵌入视频、音频文件格式时,就要考虑浏览器的兼容性问题。

浏览器支持的视频、音频格式

视频、音频格式 IE 9 以上 Firefox 4 以上 Opera11.5 以上 Chrome8 以上 Safari12.1 以上 Edge17 以上
ogg × 支持 支持 支持 × 支持
mpeg4 支持 支持 支持 支持 支持 支持
WebM × 支持 支持 支持 支持 支持
ogg × 支持 支持 支持 × 支持
mp3 支持 支持 支持 支持 支持 支持
wav × 支持 支持 支持 支持 支持

在HTML5中,运用source标签可以为video标签或audio标签提供多个备用文件。

运用source标签添加音频的基本语法格式

<audio controls="controls">
	<source src="音频文件地址" type="媒体文件类型/格式">
	<source src="音频文件地址" type="媒体文件类型/格式">
	……
</audio>

source标签的属性

src:用于指定媒体文件的URL地址。 type:指定媒体文件的类型和格式。如果嵌入音频文件,则类型设置为audio;如果嵌入视频文件,则类型设置为video。格式设置为HTML5所支持的音频、视频格式。

运用source标签添加视频的基本语法格式

<video controls="controls">
	<source src="视频文件地址" type="媒体文件类型/格式">
	<source src="视频文件地址" type="媒体文件类型/格式">
	……
</video>

浏览器对视频和音频的编码格式也有要求。其中,视频编码格式最好为H.264,音频编码格式最好为AAC。关于封装格式和编码格式这里只需了解即可。

8.3.4 调用网络音频、视频文件

步骤一 获取文件的URL:在网页中获取音频或视频的外部链接地址。

步骤二 插入文件URL:选中外部链接地址并复制,粘贴到代码中。

调用网络音频、视频文件的方法虽然简单易用,但是当链入的音频、视频文件所在的网站出现问题时,我们调用的URL地址也会失效。

注意:在网页中嵌入音频或视频文件时,一定要注意版权问题,我们尽量选择一些授权使用的音频或视频文件。

8.4 使用CSS控制视频的宽度和高度

给视频设置宽度和高度属性后,浏览器在加载页面时就会预先确定视频的尺寸,为视频保留合适大小的空间,保证页面布局的统一。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用CSS控制视频的宽度和高度</title>
    <style type="text/css">
    *{
        margin:0; 
        padding:0;
    }
    div{
        width:600px;
        height:300px;
        border:1px solid #000;
    }
    video{
        width:200px;
        height:300px;
        background:#9CCDCD;
        float:left;	
    }
    p{
        width:200px;
        height:300px;
        background:#999;
        float:left;	
    }
    </style>
</head>
<body>
    <div>
        <p>占位色块</p>
        <video src="video/duanwu.mp4" controls="controls">浏览器不支持video标签</video>
        <p>占位色块</p>
    </div>
</body>
</html>

注意:通过width属性和height属性来缩放视频,这样的视频即使在页面上看起来很小,但它的原始大小依然没变,因此在实际工作中要运用视频处理软件(如“格式工厂”)对视频进行压缩。

8.5 阶段案例——音乐播放界面

本章前几节重点讲解了多媒体的格式、浏览器对HTML5音频、视频的支持情况以及在HTML5页面中嵌入音频、视频文件的方法。为了加深读者对网页多媒体标签的理解和运用,本节将通过案例的形式分步骤制作一个音乐播放界面。

*{margin:0; padding:0; }
#box-video{
	width:100%; 
	height:100%;
	position:absolute; 
	overflow:hidden;
}
/*插入视频*/	
#box-video video{
	position:absolute; 
	top:50%; 
	left:50%;
	margin-left:-1350px; 
	margin-top:-540px;
}
.cd{
	width:422px;
	height:422px;
	position:absolute;
	top:25%;
	left:10%;
	z-index:2;
	border-radius:50%;
	border:10px solid #FFF;
	box-shadow:5px 5px 15px #000;
	background:url(images/cd_img.jpg) no-repeat;
	}
.center{
	width:100px;
	height:100px;
	background-color:#000;
	border-radius:50%;
	position:absolute;
	top:50%;
	left:50%;
	margin-left:-50px; 
	margin-top:-50px;
	z-index:3;
	border:5px solid #FFF;
	background-image:url(images/yinfu.gif);
	background-position: center center;
	background-repeat:no-repeat;
	}
    .song{
        position:absolute;
        top:25%;
        left:50%;
        }
    @font-face{
        font-family:MD; 
        src:url(font/MD.ttf);
        }
    h2{
        font-family:MD; 
        font-size:110px; 
        color:#913805;
        }
    p{ 
        width:556px;
        height:300px;
        font-family:"微软雅黑";
        padding-left:30px;
        line-height:30px;
        background:url(images/bg.png) repeat-x;
        box-sizing:border-box;
    }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>音乐播放页面</title>
    <link rel="stylesheet" href="style04.css" type="text/css" />
</head>
<body>
    <div id="box-video">
        <video src="video/huanghe.mp4"  autoplay loop muted>浏览器不支持video标签</video>
        <div class="cd">
            <div class="center"></div>
        </div>
        <div class="song">
            <h2>保卫黄河</h2>
            <p>风在吼 马在叫<br/>黄河在咆哮 黄河在咆哮<br/>河西山冈万丈高<br/>河东河北高粱熟了<br/>万山丛中<br/>抗日英雄真不少<br/>青纱帐里<br/>游击健儿逞英豪<br/>端起了土枪洋枪</p>
            <audio src="music/mailang.mp3" autoplay loop ></audio>
        </div>
    </div>
</body>
</html>

本章小结

本章首先介绍了HTML5多媒体特性、多媒体的格式以及浏览器的支持情况,然后讲解了在HTML5页面中嵌套多媒体文件的方法,最后运用所学知识制作了一个音乐播放页面。 通过本章的学习,读者应该能够了解HTML5多媒体文件的特性,熟悉常用的多媒体格式,掌握在页面中嵌入音频、视频文件的方法,并将其综合运用到页面的制作中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第8章 多媒体嵌入 的相关文章

  • post-css 未从 node_modules 找到路径

    我目前有一个 Angular 项目 我希望使用 purgecss 清除 css 我已经一切正常 但是当我导入 node modules 时 它很困难 因为它找不到位于 node modules 文件夹中的路径 我有当前的app scss f
  • HTML/CSS/JS:如何强制浏览器保存非“密码”类型输入的密码?

    问题是我有两个类似于用户名和密码的值 但实际上是用户用来登录我创建的网站的 2 个随机生成的 GUID 它们并不是真正的用户名和密码 而是我尝试的 GUID来复制这个组合 通常 浏览器在看到元素的 type password 属性时会询问您
  • 如何让第一个字母像报纸风格一样推入段落

    我创建了一些 CSS 来处理段落中的第一个字母 看起来也更大 如何使第一个字母向下并向左推 这样它就不会高于该行本身 并在需要时将其他行缩进到右侧 见附图 text article color 000 text article first
  • webpack - require('node_modules/leaflet/leaflet.css')

    所以我正在尝试使用构建一个地图应用程序webpack and leaflet 我可以要求leaflet js从我的map js文件 但我无法在不出现错误的情况下调用 leaflet css 我现在的webpack config js好像 u
  • CSS 叠加在图像背景上

    我想在图像背景上叠加 以便更清楚地看到图像上方的白色文本 为什么不会这个解决方案 http codepen io anon pen aBJErm work HTML div class bg1 image cover p H p div C
  • 孤独的开发人员但有大量的 xhtml css jquery 工作?我应该使用版本控制系统吗?

    它对于单用户单台 PC 有用还是太过分了 我可以使用任何版本控制系统来节省时间并提高生产力吗 如果答案是肯定的 那么哪种免费版本控制系统最适合我以及如何节省时间 我在家和办公室工作 这两个地方我都可以上网 我想从这两个地方访问源代码 Upd
  • 为什么使用 DIV 或 span 标签比使用表格布局“更好”? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么不在 HTML 中使用表格进行布局 https stackoverflow com questions 83073 why not use tables for layout in html 为
  • 如何删除因缩小以适合元素而自动换行引起的额外空间?

    我正在尝试使用收缩来贴合 container 它可以完美地工作 直到它包含的元素换行为止 这会使其扩展到 180 像素 screen dimensions width 250px height 100px background color
  • 背景重复 x/y 在 Firefox/Safari 中不起作用

    我有下面的代码表明background repeat x y由于某些原因 它在 FireFox 上不起作用 它只是删除了这些样式 但并不是说它们是不正确的 它们没有在某处被覆盖 当我尝试将这些风格结合在一起时 background 它也将其
  • 为什么 Firefox 会忽略弹性项目的下边距?

    它尊重margin bottom只有当有足够的空间时 否则 Firefox 会表现得好像没有margin bottom at all 全面镀铬 铬合金缩小 火狐浏览器缩小了 Flexbox 的行为是否正确 如何修复它 codepen htt
  • 具有多个路径的 SVG 剪辑路径的悬停事件

    我有一个 SVG 演示图像 其中包含多个正在剪辑动画 GIF 的圆圈 当用户将鼠标悬停在每个圆圈上时 是否可以观察每个圆圈的悬停事件 例如左上角的圆圈或右中角的圆圈 另外 当这些圆圈悬停时 是否可以操纵这些圆圈上的颜色叠加 EDIT 理想情
  • 我可以覆盖父元素的 z-index 继承吗?

    使用绝对位置时 有什么方法可以覆盖父元素的 z index 继承 我希望 2222 div 位于 0000 div 之上 div style background color green OOOO div div style backgro
  • Bootstrap 100% 宽度/全宽度

    我想用 Bootstrap 创建一个新网站 我需要它的宽度为 100 但我不希望它是流畅的 至少现在不是 我遇到的问题是 使用 bootstrap 标准将您限制为 960px 并且使用流体布局它是全宽的 但其行为就像流体布局应该通过在窗口尺
  • 工具提示出现在 intro.js 移动视图中的元素上方

    我正在使用 intro js 初步浏览我网站上的页面 该游览在桌面上看起来不错 但在移动设备上 工具提示出现在它所描述的元素的正上方 用户无法在移动视图中看到该元素 因为工具提示出现在该元素的正上方 见下图 我尝试自定义工具提示的位置 但输
  • CSS 选择器:id 或类中的第一个 div

    用于选择类中或具有特定 id 的第一个 div 的正确 CSS 选择器是什么 对于父 子元素来说 这似乎要容易得多 但我还没有找到简单元素的任何内容 更新 解决方案 我发现的最干净 最兼容的解决方案是 class class 它选择前一个类
  • 对于 Web 应用程序结构的最佳实践,您有哪些建议? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我在工作中做了很多定制应用程序 我正在尝试为新应用程序定义一些标准 有点像元素 CSS 你如何组织样式表 我是否应该为整个网站提供一个基本样式表
  • 如何使用.clearfix类?

    我想我误解了这个概念 clearfix班级 也许有人可以帮助我 我正在寻找一种使用方法float and clear不会弄乱我的标记 所以我想 那就是那里 clearfix可以用于 在空的 H5BP 项目内部 我的标记如下所示 div di
  • 是否有CSS“:drop-hover”伪类?

    说我有一个input type file 场地 人们可以在上面放置一个文件input 就像在 Firefox 中一样 而不是单击 浏览 并选择文件 现在 我想对其进行一些自定义 方法是在将文件放入其中时更改字段的背景颜色input 我真的无
  • 针对较小屏幕的拆分表行

    我有一个固定宽度为 960px 有 5 列的表格 当我在移动设备中查看时 我想制作第 3 4 5 列 看起来就像在下一行 有什么方法可以让 CSS 打断一行 使其看起来像这样 但是 还保留原来的HTML代码吗 您可以使用 FlexBox f
  • -moz-变换 z-index 错误?

    In 这个测试用例 http jsfiddle net MZ7PX 没有 moz transform rotate 31deg 黄色框是可见的 它应该是可见的 但是如果我添加这个 尽管有一个黄色框是不可见的z index of 999 Wh

随机推荐

  • 基于SpringBoot的社区医院管理系统

    文章目录 项目介绍 主要功能截图 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于SpringBoot的社区
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位
  • java SSM图片管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

    一 源码特点 java SSM图片管理系统是一套完善的web设计系统 系统采用SSM框架进行设计开发 spring springMVC mybatis 对理解JSP java编程开发语言有帮助 系统具有完整的源代码和 数据库 系统主要采用B
  • Linux习题2

    解析 虚拟内存是计算机系统内存管理的一种技术 它使得应用程序认为它拥有连续可用的内存 使得每个进程看到的内存空间一致 解析 所谓系统调用 就是内核提供的 功能十分强大的一系列的函数 这些系统调用是在内核中实现的 再通过一定的方式把系统调用给
  • 基于WEB的教学辅助系统的设计与实现

    随着计算机和网络技术的飞速发展 人们传统的生活 工作和学习方式正在发生深刻变革 长久以来 各行各业的教学以传统的课堂讲授为主 效果受到诸多限制 因此 随着在线辅助教学及行业信息化的普及 构建信息交互平台的重要性日益凸显 为了提高教育质量 充
  • 可狱可囚的爬虫系列课程 09:通过 API 接口抓取数据

    前面已经讲解过 Requests 结合 BeautifulSoup4 库抓取数据 这种方式在抓取数据时还是比较方便快捷的 但是这并不意味着所有的网站都适合这种方式 并且这也不是抓取数据的最快方式 今天我们来讲一种更快速的获取数据的方式 通过
  • SSM知识点铺垫--Http工作原理?

    HTTP Hypertext Transfer Protocol 是一种用于在网络上传输超文本的协议 它是一个无状态的协议 意味着每次请求之间没有保留状态 HTTP的工作原理涉及客户端和服务器之间的通信 主要包括请求 Request 和响应
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • CRM软件对企业发展起着哪些作用?CRM的功能解析

    虽然不少科技成果昙花一现 但CRM管理系统作为销售和营销领域的核心技术 已经牢牢占据了不可撼动的地位 拥有一个部署得当的CRM系统能为企业带来诸多好处 它可以跟踪和管理销售人员与潜在 现有客户的所有互动和沟通 并帮助他们识别出需要重点培养或
  • 基于SpringBoot的旅游网站281

    文章目录 项目介绍 主要功能截图 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于SpringBoot的旅游
  • SpringIOC之support模块DefaultMessageSourceResolvable

    博主介绍 全网粉丝5W 全栈开发工程师 从事多年软件开发 在大厂呆过 持有软件中级 六级等证书 可提供微服务项目搭建与毕业项目实战 博主也曾写过优秀论文 查重率极低 在这方面有丰富的经验 博主作品 Java项目案例 主要基于SpringBo
  • SpringBoot多模块(module)项目搭建

    https www cnblogs com zfyang2429 p 10801959 html
  • JDK21新特性探秘

    欢迎关注公众号 通过文章导读关注 11来了 及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景 中间件系列笔记 和 编程高频电子书 文章导读地址 点击查看文
  • 5.1 中央寄存器的原理和组成

    思维导图 中央处理器 CPU 核心原理与组成 引言 中央处理器 CPU 作为计算机的 大脑 在现代计算机硬件中扮演着至关重要的角色 本文旨在深入探讨CPU的基本原理和组成部分 为读者提供一个全面的理解 CPU的基本原理 1 信息处理 CPU
  • <sa8650>sa8650 CDT-之-汽车CDT配置用户指南(上)

    sa8650 sa8650 CDT 之 汽车CDT配置用户指南 上 2 CDT概述 2 1 Platform ID值 2 2 CDT一般结构 2 3 CDT头 2 4 块元数据 2 5 CDBs 2 6 加载CDT的启动过程
  • 实现智能化运维的关键驱动力,你知道可观测性工具吗

    可观测性是指根据系统产生的数据评估内部系统状态的能力 对于IT运维团队来说 可观测性工具是非常重要的 通过这些工具 IT团队可以同时观察或深入了解IT基础架构中不同应用程序和资源的健康状况和状态 从而主动检测异常 分析问题并解决问题 可观测
  • linux centos使用rz、sz命令上传下载文件

    一般情况下 我们会使用终端软件 如 XShell SecureCRT 或 FinalShell 来连接远程服务器后 使用 rz 命令上传本地文件到远程服务器 再解压发版上线 一 安转使用 系统 Linux CentOS 7 安装 rz 和
  • Metasploit使用msfconsole命令启动时,报错‘/usr/share/metasploit-framework/......’

    当使用msfconsole命令启动时 msf无法启动 且报错 解决办法 1 更新apt程序库 apt get update 2 更新metasploit 框架 apt get install metasploit framework 3 重
  • 【C++项目】【报错】[错误] new: No such file or directory, compilation terminated【及解决方法】

    一 问题描述 C源代码文件在编译过程中报错 错误 new No such file or directory compilation terminated 代码如下 include
  • 第8章 多媒体嵌入

    学习目标 了解视频 音频嵌入技术 能够总结HTML5视频 音频嵌入技术的优点 了解常用的视频文件格式和音频文件格式 能够归纳HTML5支持的视频和音频格式 掌握HTML5中视频的嵌入方法 能够在HTML5页面中添加视频文件 掌握HTML5中