《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)
文章目录
- 7.1 在HTML中嵌入视频和音频
- 7.1.1 基础知识
- 7.1.2 案例 1:嵌入视频文件
- 7.1.3 案例 2:嵌入音频文件
- 7.1.4 案例 3:创建一个视频和音频混合的播放列表
- 7.2 使用 `<iframe>` 嵌入外部内容
- 7.2.1 基础知识
- 7.2.2 案例 1:嵌入地图
- 7.2.3 案例 2:嵌入视频
- 7.2.4 案例 3:创建一个包含多个`<iframe>`的网页
- 7.3 管理和优化多媒体内容
- 7.3.1 基础知识
- 7.3.2 案例 1:优化网页图像
- 7.3.3 案例 2:使用视频流服务
- 7.3.4 案例 3:懒加载图像
7.1 在HTML中嵌入视频和音频
7.1.1 基础知识
- 视频和音频标签:HTML5引入了
<video>
和<audio>
标签,让嵌入和播放媒体变得简单。就像在你的网页上安装了一个迷你影院和音乐厅。 - 属性和格式:这些标签支持多种属性,比如
controls
、autoplay
、loop
,以及多种文件格式,确保不同的浏览器能播放你的媒体内容。 - 源文件:使用
<source>
标签可以为不同的浏览器提供不同格式的视频和音频文件,保证更广泛的兼容性。
7.1.2 案例 1:嵌入视频文件
让我们开始嵌入一个视频文件。我们将为不同的浏览器提供不同格式的视频,并添加控件以供用户操作。
<!DOCTYPE html>
<html>
<head><title>视频嵌入示例</title>
</head>
<body><video width="320" height="240" controls><source src="movie.mp4" type="video/mp4"><source src="movie.ogg" type="video/ogg">Your browser does not support the video tag.</video>
</body>
</html>
7.1.3 案例 2:嵌入音频文件
接下来,我们将在网页中嵌入一个音频文件,并添加一些基本控件。
<!DOCTYPE html>
<html>
<head><title>音频嵌入示例</title>
</head>
<body><audio controls><source src="audio.mp3" type="audio/mpeg"><source src="audio.ogg" type="audio/ogg">Your browser does not support the audio element.</audio>
</body>
</html>
7.1.4 案例 3:创建一个视频和音频混合的播放列表
最后,我们来点挑战性的任务:创建一个包含视频和音频的播放列表,让用户可以从列表中选择他们想看或听的内容。
<!DOCTYPE html>
<html>
<head><title>混合播放列表</title>
</head>
<body><h1>我的播放列表</h1><video id="mediaPlayer" width="320" height="240" controls><source src="movie.mp4" type="video/mp4">Your browser does not support the video tag.</video><audio id="mediaPlayer" controls><source src="audio.mp3" type="audio/mpeg">Your browser does not support the audio element.</audio><ul><li onclick="playMedia('movie.mp4', 'video/mp4')">视频 1</li><li onclick="playMedia('movie2.mp4', 'video/mp4')">视频 2</li><li onclick="playMedia('audio.mp3', 'audio/mpeg')">音频 1</li></ul><script>function playMedia(file, type) {var player = document.getElementById('mediaPlayer');player.src = file;player.type = type;player.load();player.play();}</script>
</body>
</html>
通过这些案例,你将能够掌握在网页中嵌入和控制视频及音频的基础技能。从简单的嵌入到创建播放列表,这些知识让你的网站变得更加生动有趣,仿佛赋予了它生命。记住,视觉和听觉的结合可以极大地提升用户体验,所以尽情地利用这些工具吧!
7.2 使用 <iframe>
嵌入外部内容
7.2.1 基础知识
<iframe>
简介:<iframe>
(内联框架)是一个HTML元素,它允许您在当前HTML页面上嵌入另一个HTML页面。想象一下,在你的网页上有一个小窗口,可以看到另一个网站的内容。- 使用场景:
<iframe>
经常用于嵌入如视频、地图、或者其他网站的页面。它就像是网页中的“迷你视窗”,允许用户在不离开当前页面的情况下浏览其他内容。 - 属性:
<iframe>
支持多种属性,包括src
(指定嵌入内容的来源)、width
和height
(设置框架的大小)、frameborder
(设置边框的宽度)等。
7.2.2 案例 1:嵌入地图
假设您想在您的网站上嵌入一个地图,以显示某个地点。
<!DOCTYPE html>
<html>
<head><title>嵌入地图示例</title>
</head>
<body><h1>广州天河体育中心</h1><iframewidth="600"height="450"frameborder="0" style="border:0"src="https://map.baidu.com/search/%E5%A4%A9%E6%B2%B3%E4%BD%93%E8%82%B2%E4%B8%AD%E5%BF%83/@12616001.349751737,2632395.62058975,18.43z?querytype=s&da_src=shareurl&wd=%E5%A4%A9%E6%B2%B3%E4%BD%93%E8%82%B2%E4%B8%AD%E5%BF%83&c=257&src=0&wd2=%E5%B9%BF%E5%B7%9E%E5%B8%82%E5%A4%A9%E6%B2%B3%E5%8C%BA&pn=0&sug=1&l=13&b=(12582963,2611508;12664883,2653716)&from=webmap&biz_forward=%7B%22scaler%22:2,%22styles%22:%22pl%22%7D&sug_forward=ef23bc7692da590ff4e73ba4&device_ratio=2"allowfullscreen></iframe>
</body>
</html>
7.2.3 案例 2:嵌入视频
接下来,让我们在网页中嵌入一个YouTube视频。
<!DOCTYPE html>
<html>
<head><title>嵌入视频示例</title>
</head>
<body><h1>观看我们的视频</h1><iframewidth="560"height="315"src="http://t.cn/A6jUEkYB"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"allowfullscreen></iframe>
</body>
</html>
7.2.4 案例 3:创建一个包含多个<iframe>
的网页
最后,我们来创建一个包含多个<iframe>
的网页,比如同时嵌入视频、地图和另一个网站的新闻文章。
<!DOCTYPE html>
<html>
<head><title>多重嵌入示例</title>
</head>
<body><h1>了解更多</h1><iframewidth="560"height="315"src="http://t.cn/A6jUEkYB"frameborder="0"allowfullscreen></iframe><iframewidth="600"height="450"src="https://map.baidu.com/search/%E5%A4%A9%E6%B2%B3%E4%BD%93%E8%82%B2%E4%B8%AD%E5%BF%83/@12616001.349751737,2632395.62058975,18.43z?querytype=s&da_src=shareurl&wd=%E5%A4%A9%E6%B2%B3%E4%BD%93%E8%82%B2%E4%B8%AD%E5%BF%83&c=257&src=0&wd2=%E5%B9%BF%E5%B7%9E%E5%B8%82%E5%A4%A9%E6%B2%B3%E5%8C%BA&pn=0&sug=1&l=13&b=(12582963,2611508;12664883,2653716)&from=webmap&biz_forward=%7B%22scaler%22:2,%22styles%22:%22pl%22%7D&sug_forward=ef23bc7692da590ff4e73ba4&device_ratio=2s"frameborder="0"allowfullscreen></iframe><iframewidth="100%"height="500"src="https://example.com/news-article"frameborder="0"></iframe>
</body>
</html>
通过这些案例,您可以看到<iframe>
如何让您在一个网页中方便地展示来自不同来源的内容。使用<iframe>
可以大大增强您的网页的功能性和互动性,让用户在访问您的网站时享受更加丰富的体验。
7.3 管理和优化多媒体内容
7.3.1 基础知识
- 多媒体内容的挑战:虽然多媒体内容可以让网站更加生动有趣,但它们也可能导致网页加载时间变长,影响用户体验。
- 优化图像:对于图像,使用正确的格式(如JPEG、PNG、WEBP)和压缩技术可以显著减少文件大小,而不损失太多质量。
- 视频和音频的优化:对于视频和音频,考虑使用流媒体服务,或者预加载技术来平衡加载时间和播放性能。
7.3.2 案例 1:优化网页图像
假设您的网站有很多高分辨率的图像,我们将通过减少它们的大小来优化加载时间。
<!DOCTYPE html>
<html>
<head><title>图像优化示例</title>
</head>
<body><h1>我的摄影作品</h1><img src="optimized-image1.jpg" alt="优化后的图像1"><img src="optimized-image2.jpg" alt="优化后的图像2"><img src="optimized-image3.jpg" alt="优化后的图像3">
</body>
</html>
在这个示例中,假设optimized-image1.jpg
、optimized-image2.jpg
和optimized-image3.jpg
是原始图像经过压缩和大小调整后的版本。
7.3.3 案例 2:使用视频流服务
让我们嵌入一个视频,但这次我们使用视频流服务,如YouTube或Vimeo,以减少主机服务器的负担。
<!DOCTYPE html>
<html>
<head><title>视频流服务示例</title>
</head>
<body><h1>观看我们的视频</h1><iframewidth="560"height="315"src="http://t.cn/A6jUEkYB"frameborder="0"allowfullscreen></iframe>
</body>
</html>
7.3.4 案例 3:懒加载图像
在这个示例中,我们将应用“懒加载”技术,这意味着图像只会在用户滚动到它们时才加载。
<!DOCTYPE html>
<html>
<head><title>懒加载图像示例</title><script>document.addEventListener("DOMContentLoaded", function() {var lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));if ("IntersectionObserver" in window) {let lazyImageObserver = new IntersectionObserver(function(entries, observer) {entries.forEach(function(entry) {if (entry.isIntersecting) {let lazyImage = entry.target;lazyImage.src = lazyImage.dataset.src;lazyImage.classList.remove("lazy");lazyImageObserver.unobserve(lazyImage);}});});lazyImages.forEach(function(lazyImage) {lazyImageObserver.observe(lazyImage);});}});</script>
</head>
<body><h1>浏览我的作品</h1><img class="lazy" data-src="image1.jpg" alt="我的作品1"><img class="lazy" data-src="image2.jpg" alt="我的作品2"><img class="lazy" data-src="image3.jpg" alt="我的作品3">
</body>
</html>
在这些案例中,我们展示了如何优化和管理网站的多媒体内容,确保用户体验不受大文件加载时间的影响。从图像压缩到视频流服务,再到懒加载技术,这些方法都是提高网站性能的有效手段。
相关文章:

《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)
文章目录 7.1 在HTML中嵌入视频和音频7.1.1 基础知识7.1.2 案例 1:嵌入视频文件7.1.3 案例 2:嵌入音频文件7.1.4 案例 3:创建一个视频和音频混合的播放列表 7.2 使用 <iframe> 嵌入外部内容7.2.1 基础知识7.2.2 案例 1:嵌入…...

【CSS】移动端适配
移动端适配怎么做? 适配的目的是在屏幕大小不同的终端设备拥有统一的界面,让拥有更大屏幕的终端展示更多的内容。 meta viewport (视口) 移动端初始视口的大小默认是980px,因为世界上绝大多数PC网页的版心宽度为980px ,如果网页…...

DFS剪枝算法经典题目-挑选
4954. 挑选 - AcWing题库 给定一个包含 n 个正整数 a1,a2,…,an的集合。 集合中可能存在数值相同的元素。 请你从集合中挑选一些元素,要求同时满足以下所有条件: 被选中元素不少于 2 个。所有被选中元素之和不小于 l 且不大于 r。所有被选中元素之中最大…...

考研经验总结——考试期间
文章目录 一、订房二、看考场三、休息四、考前带宾馆的书五、安全 一、订房 我刚刚看了看,是9.10号订的酒店。你们可以提前向学长学姐打听你的考场在哪个学校(徐州的考生,考省外的学校是在矿大考试,考省内的学校是在江师大&#…...

vue3 源码解析(6)— lifecycle 生命周期的实现
前言 对于 vue3 的生命周期,我们经常性会去疑问,生命周期有哪些呢,它是怎么去实现的, 又是什么时候调用的。 vue3 生命周期有哪些 下面这个表格列出了所有选项式api生命周期钩子和组合式api生命周期钩子,以及他们的…...

three.js CSS2DRenderer、CSS2DObject渲染HTML标签
有空的老铁关注一下我的抖音: 效果: <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"><…...

SECS/GEM300和半导体e84控制器
SECS(SEMI EQUIPMENT COMMUNICATIONS STANDARD 2)半导体设备通讯标准 GEM(Generic Equipment Model)定义了Fab中各个场景下设备行为及其所使用SECS消息。 GEM300也称为300mm标准,FAB是12寸设备的处理作业规范。主要包…...

k8s二进制及负载均衡集群部署详解
目录 常见部署方式 二进制部署流程 环境准备 操作系统初始化配置 关闭防火墙 配置SELinux 关闭SWAP 根据规划设置主机名 在master添加hosts,便于主机名解析 调整内核参数 配置时间同步 部署docker引擎 在所有node节点部署docker引擎 部署etcd集群 签发…...

【Django开发】0到1开发美多商城项目第3篇:用户注册业务实现(附代码,已分享)
本系列文章md笔记(已分享)主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目(4.0版本)含代码和文档。功能包括前后端不分离,方便SEO。采用Django Jinja2模板引擎 Vue.js实现前后端…...

免费的ppt网站分享
前言 相信大学生们深有体会,对于学校而言,好像是任何活动都需要我们做ppt,当你拿着自己辛苦做的ppt去展示现场的时候,你看到别人的ppt比你的还好,此时心情就是毙,当你知道人家不过是仅仅的1个小时不到就完成…...

基于Transformer结构的扩散模型综述
🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…...

POI操作word表格,添加单元格,单元格对齐方法(不必合并单元格)
添加单元格,直接对row进行create新的cell,则会导致新创建的单元格与前面的单元格不对齐的现象。 //表格信息XWPFTable table doc.createTable();table.setWidth("100%");//第一行XWPFTableRow row0table.getRow(0);XWPFTableCell cell00row0.…...

maven代码规范检查(checkstyle、findbugs)
maven代码规范检查 前言一、使用checkstyle插件1. maven-checkstyle-plugin 介绍2. 接入方式3. 如何排除某个类、包下面的文件不进行检查使用suppressionsLocation 4. 如何关闭 二、使用findbugs插件1.findbugs-maven-plugin介绍2. 接入方式3. 如何排除某个类、包下面的文件不进…...

妙用Java反射,让代码更加优雅
最近在改公司项目bug,需要修改别人的代码。在读别人的源码时感觉到反射真的是能够极大的提高代码的优雅性,在某些特定场景能极大的简化代码的编写。因此写了这篇文章用以记录分享。 我们先还原一下场景,在做数据展示的时候,需要处…...

实习日志10
1.用户信息 1.1.在用户管理中编辑用户信息 1.2.绑定公司id 1.3.显示在页面 2.修改识别逻辑 2.1.分析 先识别,再判断,清空键把识别结果清空 2.2.写码 修改了发票识别逻辑,略... 3.接高拍仪 3.1.js引入报错 分析: 遇到的错误…...

配置alias(设置别名@)
Vite配置alias需要两步进行(TS项目) 1、修改vite.config.ts(让程序支持)2、修改tsconfig.json(让编辑器支持)修改vite.config.ts import { defineConfig } from vite import path from path function…...

【动态规划】【数学】1388. 3n 块披萨
作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode1388 3n 块披萨 给你一个披萨,它由 3n 块不同大小的部分组成,现在你和你的朋友们需要按照如下规则来分披萨: 你挑选 任…...

CS144--Chapter0--wsl2+docker环境搭建
我的笔记本配置 荣耀magicbook16,容量是500G,芯片是R7-5800 由于笔记本容量较小,因此考虑这个方案,对于台式机用户,建议可以直接用虚拟机或者双系统。 前言 斯坦福官网给出的方法是用他们的镜像(基于Ubu…...

MGRE实验报告二
实验要求: 实验预览图: 实验分析: 1、对R1-R5配置IP地址,同时R1-R5每个路由器各有一个环回 2.1、对R1、R3、R4路由器开启虚拟接口1,分别配置隧道IP、接口封装协议,接口类型、定义封装源、开启伪广播功能&…...

算法设计与分析实验:最短路径算法
一、网络延迟时间 力扣第743题 本题采用最短路径的思想进行求解 1.1 具体思路 (1)使用邻接表表示有向图:首先,我们可以使用邻接表来表示有向图。邻接表是一种数据结构,用于表示图中顶点的相邻关系。在这个问题中&am…...

共用体与枚举法,链表的学习
结构体注意事项: 1.结构体类型可以定义在main函数里面,但是此时的作用域就被限定在该函数中 2.结构体的的的定义的形式:a.先定义类型,后定义变量-----struct stu s b.定义类型的同时,定义了变量:struct…...

SG2520CAA汽车用晶体振荡器
爱普生SG2520CAA是简单的封装晶体振荡器(SPXO),具有CMOS输出,这款SPXO是汽车和高可靠性应用的理想选择,符合AEC-Q200标准,功耗低,工作电压范围为1.8 V ~ 3.3 V类型,宽工作温度-40℃~…...

使用pip将第三方依赖包下载到本地指定位置
pip download -d save_path packages -d:后面接下载包路径(save_path) packages:安装包名称...

C语言探索:水仙花数的奥秘与计算
摘要: 水仙花数,一种特殊的三位数,其各位数字的立方和等于该数本身。本文将详细介绍水仙花数的定义、性质,以及如何使用C语言来寻找100至999范围内的水仙花数。 目录 一、水仙花数的定义与性质 二、用C语言寻找100至999范围内的…...

2024年人工智能应用与先进制造科学国际学术会议(ICAIAAMS 2024)
2024年人工智能应用与先进制造科学国际学术会议(ICAIAAMS 2024) 2024 International Conference on Artificial Intelligence Applications and Advanced Manufacturing Science (ICAIAAMS 2024) 会议简介: 2024年人工智能应用与先进制造科学国际学术会议ÿ…...

计算机图形学 实验
题目要求 1.1 实验一:图元的生成:直线、圆椭区域填充 你需要完成基本的图元生成算法,包括直线和椭圆。 在区域填充中,要求你对一个封闭图形进行填充。你需要绘制一个封 闭图形(例如多边形),并选…...

React + react-device-detect 实现设备特定的渲染
当构建响应式网页应用时,了解用户正在使用的设备类型(如手机、平板或桌面)可以帮助我们提供更优化的用户体验。本文将介绍如何在 React 项目中使用 react-device-detect 库来检测设备类型,并根据不同的设备显示不同的组件或样式。…...

文献速递:肿瘤分割----基于卷积神经网络的系统,用于前列腺癌[68Ga]Ga-PSMA PET全身图像的全自动分割
文献速递:肿瘤分割----基于卷积神经网络的系统,用于前列腺癌[68Ga]Ga-PSMA PET全身图像的全自动分割 01 文献速递介绍 前列腺特异性膜抗原(PSMA)PET/CT成像近年来在前列腺癌检测领域中获得了显著的重视。PSMA是一种在前列腺上皮…...

2024 IC FPGA 岗位 校招面试记录
引言 各位看到这篇文章时,24届校招招聘已经渐进尾声了。 在这里记录一下自己所有面试(除了时间过短或者没啥干货的一些研究所外,如中电55所(南京),航天804所(上海))的经…...

Linux 命令 —— top
Linux 命令 —— top 相对于 ps 是选取一个时间点的进程状态,top 则可以持续检测进程运行的状态。使用方式如下: 用法: top [-d secs] | [-p pid] 选项与参数: -d secs:整个进程界面更新 secs 秒。默认是 5 5 5 秒。…...