《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)

news2024/11/18 7:43:54

在这里插入图片描述

文章目录

  • 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>标签,让嵌入和播放媒体变得简单。就像在你的网页上安装了一个迷你影院和音乐厅。
  • 属性和格式:这些标签支持多种属性,比如controlsautoplayloop,以及多种文件格式,确保不同的浏览器能播放你的媒体内容。
  • 源文件:使用<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(指定嵌入内容的来源)、widthheight(设置框架的大小)、frameborder(设置边框的宽度)等。

7.2.2 案例 1:嵌入地图

假设您想在您的网站上嵌入一个地图,以显示某个地点。

<!DOCTYPE html>
<html>
<head>
    <title>嵌入地图示例</title>
</head>
<body>
    <h1>广州天河体育中心</h1>
    <iframe
        width="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>
    <iframe
        width="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>
    <iframe
        width="560"
        height="315"
        src="http://t.cn/A6jUEkYB"
        frameborder="0"
        allowfullscreen>
    </iframe>
    <iframe
        width="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>
    <iframe
        width="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.jpgoptimized-image2.jpgoptimized-image3.jpg是原始图像经过压缩和大小调整后的版本。

7.3.3 案例 2:使用视频流服务

让我们嵌入一个视频,但这次我们使用视频流服务,如YouTube或Vimeo,以减少主机服务器的负担。

<!DOCTYPE html>
<html>
<head>
    <title>视频流服务示例</title>
</head>
<body>
    <h1>观看我们的视频</h1>
    <iframe
        width="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>

在这些案例中,我们展示了如何优化和管理网站的多媒体内容,确保用户体验不受大文件加载时间的影响。从图像压缩到视频流服务,再到懒加载技术,这些方法都是提高网站性能的有效手段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1419438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用保留可探测字段参数的方法解决视频监控管理平台EasyCVR无法启动的问题

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

MySQL原理(二)存储引擎(1)概述

一、存储引擎介绍 1、概念&#xff1a; &#xff08;1&#xff09;MySQL中的数据用各种不下同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎…

[GN] 设计模式——面向对象设计原则概述

文章目录 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 面向对象设计原则概述 单一职责原则 一个类只负责一个功能领域中的相应职责 类…

C# 使用WMI监听进程的启动和关闭

写在前面 Windows Management Instrumentation&#xff08;WMI&#xff09;是用于管理基于 Windows 操作系统的数据和操作的基础结构。具体的API可以查看 WMI编程手册。 WMIC 是WMI的命令行管理工具&#xff0c;使用 WMIC&#xff0c;不但可以管理本地计算机&#xff0c;还可…

知识宣传手册该怎么制作?

​制作知识宣传手册是一个很好的方式来传播知识&#xff0c;提高公众对特定主题的了解。它们不仅能帮助我们传播重要信息&#xff0c;还能激发人们的求知欲&#xff0c;推动社会的进步。那么&#xff0c;如何制作一份引人入胜的知识宣传手册呢&#xff1f; 今天教大家一个很简单…

【云原生】docker-compose单机容器集群编排工具

目录 一、docker-compose容器编排的简介 二、docker-compose的使用 1、docker-compose的安装 2、docker-compose的配置模板文件yaml文件的编写 &#xff08;1&#xff09;布尔值类型 &#xff08;2&#xff09;字符串类型 &#xff08;3&#xff09;一个key有多个值 &am…

[React源码解析] Fiber

在React15及以前, Reconciler采用递归的方式创建虚拟Dom, 但是递归过程不可以中断, 如果组件的层级比较深的话, 递归会占用线程很多时间, 那么会造成卡顿。 为了解决这个问题, React16将递归的无法中断的更新重构为异步的可中断更新, Fiber架构诞生。 文章目录 1.Fiber的结构2…

Matlab基础语法

基础语法 %% Matlab基本的小常识 % (1)在每一行的语句后面加上分号(一定要是英文的哦;中文的长这个样子&#xff1b;)表示不显示运行结果 a 3; a 5% (2)多行注释:选中要注释的若干语句,快捷键CtrlR % a 3; % a 5% (3)取消注释:选中要取消注释的语句,快捷键CtrlT % 我想要取…

python字典JSON 和csv文件

JSON与Python字典 Python中的字典与JSON非常类似而且支持嵌套结构。Json通过key取值的过程和python字典通过索引取值过程完全一致。JavaScript数据类型&#xff08;值&#xff09;对应的Python数据类型&#xff08;值&#xff09; JSONPythonobjectdictarraylist/tuplestring…

链表——超详细

一、无头单向非循环链表 1.结构&#xff08;两个部分&#xff09;&#xff1a; typedef int SLTDataType; typedef struct SListNode {SLTDataType data;//数据域struct SListNode* next;//指针域 }SLNode; 它只有一个数字域和一个指针域&#xff0c;里面数据域就是所存放的…

备战蓝桥杯---数据结构与STL应用(基础实战篇1)

话不多说&#xff0c;直接上题&#xff1a; 当然我们可以用队列&#xff0c;但是其插入复杂度为N,总的复杂度为n^2,肯定会超时&#xff0c;于是我们可以用链表来写&#xff0c;同时把其存在数组中&#xff0c;这样节点的访问复杂度也为o(1).下面是AC代码&#xff1a; 下面我们来…

Flutter 高级动画技术综合指南

在动画领域&#xff0c;Flutter 提供了一系列功能&#xff0c;包括基于物理的动画&#xff0c;可以模拟真实世界的动态&#xff0c;在应用程序中创建更逼真和自然的运动。 本文将深入研究 Flutter 动画&#xff0c;探索各种类型&#xff0c;并演示如何在项目中实现它们。 Flu…

Hana SQL+正则表达式

目录 一、Pre 前言 二、知识点拆解 1&#xff09;case when…then…else 2&#xff09;json_value 函数 拓展资料 3&#xff09;CAST 函数 拓展资料 4) ROUND 函数 5&#xff09;occurences_regexpr 函数 拓展资料 6&#xff09;正则表达式 拓展资料 三、整合分析…

【openGauss】openEuler 22.03 LTS 安装了openGauss数据库后yum不可用

问题描述 尝试使用yum时出现依赖包缺少依赖版本的问题&#xff0c;主要问题时在安装openGauss时&#xff0c;通过脚本创建omm用户和dbgrp组导致的&#xff0c;如果用户和组是提前创建好的就不会出现这样的问题 报错&#xff1a;version GLIBCXX_3.4.26’ not found 报错信息 …

计算机视觉:高级图像处理,满足您的所有需求。

一、说明 特征提取是机器学习管道中的关键步骤&#xff0c;可增强模型在不同数据集上的泛化和良好表现能力。特征提取方法的选择取决于数据的特征和机器学习任务的具体要求。本文揭示图像处理的数学原理&#xff0c;实现增强的计算机视觉 二、关于计算机视觉的普遍问题 在计算机…

DL/T645、IEC104转MQTT网关BE113

随着电力系统信息化建设和数字化转型的进程不断加速&#xff0c;对电力能源的智能化需求也日趋增强。健全稳定的智慧电力系统能够为工业生产、基础设施建设以及国防建设提供稳定的能源支持。在此背景下&#xff0c;高性能的工业电力数据传输解决方案——协议转换网关应运而生&a…

【动态规划】【图论】【C++算法】1575统计所有可行路径

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 图论 LeetCode1575统计所有可行路径 给你一个 互不相同 的整数数组&#xff0c;其中 locations[i] 表示第 i 个城市的位置。同时给你 start&#xff0c;finish 和 fuel 分别表示出…

github添加 SSH 密钥

1 打开终端 输入 ssh-keygen -t rsa -b 4096 -C "github邮箱地址"如果不需要密码可以一路回车 出现这个页面就是生存成功了 open ~/.ssh // 打开.ssh 找到id_rsa.pub复制出内容新建ssh密钥输入内容,保存即可

JavaWeb中的Filter(过滤器)和 Listener(监听器)

提示&#xff1a;这两个东西听起来似乎很难&#xff0c;实际上是非常简单的&#xff0c;按照要求写就行了&#xff0c;一定不要被新名词给吓到了。 JavaWeb中的Filter&#xff08;过滤器&#xff09; 一、Filter&#xff08;过滤器&#xff09;1.如何编写 Filter2.Filter 中的细…

webassembly003 TTS BARK.CPP

TTS task TTS&#xff08;Text-to-Speech&#xff09;任务是一种自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;其中模型的目标是将输入的文本转换为声音&#xff0c;实现自动语音合成。具体来说&#xff0c;模型需要理解输入的文本并生成对应的语音输出&#xff0…