《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…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...
