第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章 多媒体嵌入 的相关文章

  • 将 css 应用到 php 表

    我有一个生成的 php 表 我想在样式表中应用样式 例如 top 15px left 10px 等 不知道如何调用该表并将其与 css 链接 echo table border 1 for i 0 i table
  • 制作波浪动画

    我正在尝试制作音频波动画 这段代码有什么问题 我尝试将翻译更改为比例 但没有成功 有人可以给我一些动画练习的链接吗 webkit box sizing border box box sizing border box webkit pers
  • 如何删除因缩小以适合元素而自动换行引起的额外空间?

    我正在尝试使用收缩来贴合 container 它可以完美地工作 直到它包含的元素换行为止 这会使其扩展到 180 像素 screen dimensions width 250px height 100px background color
  • 为什么 Firefox 会忽略弹性项目的下边距?

    它尊重margin bottom只有当有足够的空间时 否则 Firefox 会表现得好像没有margin bottom at all 全面镀铬 铬合金缩小 火狐浏览器缩小了 Flexbox 的行为是否正确 如何修复它 codepen htt
  • MouseOver CSS3D效果与javascript

    我正在尝试实现这样的 mouseOver 效果 我能够根据每个图块的位置生成所需的 css3d 矩阵 我通过缓慢的鼠标移动实现了这种效果 但是如果我从一个图块快速移动到另一个图块 则它无法正确更新 它在瓷砖之间显示出间隙 更新鼠标悬停时所有
  • 是否可以使 CSS 网格中的每隔一行具有不同的列数?

    我有一个容器 其中包含未知数量的子级 动态填充 我在父容器上使用此代码 container display grid grid template columns repeat 3 1fr grid row gap 10rem 是否有可能以某
  • 如何使用 CSS 创建菱形内的标题?

    我想创建一种风格处理 类似于 这样的事情如何运作 使用 CSS 变换 您可以使用两个伪元素和 CSS 旋转变换来创建菱形形状 如下面的代码片段所示 这将使文本不受变换的影响 因此定位它会相对容易 The rotateZ 45deg 产生等边
  • 删除编译时的 LESS // 注释

    是否可以配置LESS在通过JS编译时删除 注释 我想从输出的 less 文件中删除它们 Less的单行注释 根据文档所述 应该保持沉默 单行注释在 LESS 中也有效 但它们是 沉默的 它们不会出现在编译后的 CSS 输出中 Hi I m
  • 如何正确设置 100% DIV 高度以匹配文档/窗口高度?

    我有一个包装器 位于中心位置 并带有 y 重复的背景图像 div some content div wrapper width 900px margin 0 auto 0 auto background image url image jp
  • 具有不同高度块的三列布局

    我有基于 Twitter Bootstrap 的简单 3 列布局 唯一的问题是 每根柱子都是由不同高度的块组装而成 div class container div class row div class span4 div class bl
  • 通过边框拖放调整 div 大小,无需添加额外的标记

    我有一个绝对定位的侧面板 我需要通过拖动此边框来更改其宽度 我还需要更改边框悬停上的光标 是否可以在不添加另一个 div 进行拖动的情况下做到这一点 这是标记 right panel position absolute border lef
  • 如何在Nightwatch中测试伪元素的css属性

    我想使用 Nightwatch 测试我的网站上的背景图像是否正确 但它设置为 before 伪元素的背景 这是 CSS icon circle delete before content background url images svg
  • 选择部分文本右对齐[重复]

    这个问题在这里已经有答案了 我想知道是否有任何方法可以将选项文本的一部分向右对齐 在下面 您可以看到我有一个选择 左侧有一些名称 右侧有 垂直 我需要将 垂直 向右拉 有什么办法可以做到这一点吗
  • Bootstrap 如何从一个类切换到下一个类?

    我试图理解Bootstrap 3的反应能力 我明白在css如果一个元素有 2 个类 那么第二个类将覆盖第一个类 但是 当您使用以下命令创建响应式设计时Bootstrap 您的元素将如下所示 div class col sm 1 col md
  • 折叠和展开选项卡 jquery / 简单的手风琴

    我对手风琴选项卡有疑问 我用过手风琴菜单插件 下面的代码我用于页面中的选项卡 accordions accordion title about Content 1 accordion accordion title Home Content
  • 键盘友好的 CSS 菜单

    我的问题是这个问题的续集 键盘可访问的网络下拉菜单 https stackoverflow com questions 3945490 keyboard accessible web dropdown menus 虽然上述问题表明 我们想出
  • font-face 声明中还需要 eot、ttf 和 svg 吗?

    到目前为止 我一直使用 Paul Irish 的防弹字体语法 http www paulirish com 2009 bulletproof font face implementation syntax 但我只是在寻找对 woff 和 w
  • 如何使用 JavaScript 或 jQuery 获取 html 元素的比例值?

    我想知道如何获得元素的比例值 我努力了 element css webkit transform 返回matrix scaleX 0 0 scaleY 0 0 有没有办法得到scaleX and scaleY only 找出文档和元素之间的
  • -moz-变换 z-index 错误?

    In 这个测试用例 http jsfiddle net MZ7PX 没有 moz transform rotate 31deg 黄色框是可见的 它应该是可见的 但是如果我添加这个 尽管有一个黄色框是不可见的z index of 999 Wh
  • 对于没有固定/相对/绝对位置的元素,是否有 z-index 替代方案?

    我需要在更高的位置显示一个元素 z level 问题是 该元素位于带有 a 的 div 内 display flex and justify content space around 正常的z index属性不起作用 我认为这是因为该元素没

随机推荐

  • 基于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中