HTML5 <video> 标签属性、API 方法、事件、自定义样式详解与实用示例

在这里插入图片描述

HTML5 <video> 标签为网页内嵌视频提供了强大且便捷的功能。以下是对 <video> 标签的主要属性、API 方法、事件、自定义样式及其使用示例的详细介绍:

一、属性

1. src

  • 定义:指定视频文件的 URL。
  • 示例:
    <video src="my_video.mp4"></video>
    

2. controls

  • 定义:当设置此属性时,浏览器会显示内置的播放控制(如播放/暂停按钮、音量控制、全屏切换等)。
  • 示例:
    <video src="my_video.mp4" controls></video>
    

3. widthheight

  • 定义:设置视频播放器的宽高(以像素为单位)。
  • 示例:
    <video src="my_video.mp4" width="640" height="360"></video>
    

4. poster

  • 定义:指定视频加载时显示的封面图片 URL。
  • 示例:
    <video src="my_video.mp4" poster="video_cover.jpg"></video>
    

5. autoplay

  • 定义:如果设置,视频将在页面加载后自动开始播放。
  • 示例:
    <video src="my_video.mp4" autoplay></video>
    

6. loop

  • 定义:当设置时,视频会在播放结束后自动重头开始。
  • 示例:
    <video src="my_video.mp4" loop></video>
    

7. muted

  • 定义:设置视频初始为静音状态。
  • 示例:
    <video src="my_video.mp4" muted></video>
    

8. preload

  • 定义:指示浏览器如何预先加载视频数据。可选值有:
    • none:不预加载视频数据。
    • metadata:仅预加载视频元数据(如时长、尺寸)。
    • auto:尽可能多地预加载视频内容。
  • 示例:
    <video src="my_video.mp4" preload="metadata"></video>
    

9. crossorigin

  • 定义:指定视频是否应该以 CORS 方式加载。这对于需要访问视频帧数据的跨域视频至关重要。可选值有:
    • anonymous:请求不包含凭据。
    • use-credentials:请求包含凭据(如 cookie、HTTP 认证等)。
  • 示例:
    <video src="https://other-domain.com/my_video.mp4" crossorigin="anonymous"></video>
    

10. controlslist

HTML5 的 <video> 标签提供了丰富的媒体播放功能,其中 controlslist 属性允许开发者精细控制浏览器提供的默认视频控件中显示或隐藏的特定组件,以适应不同的用户体验需求或设计要求。以下是关于 controlslist 属性的详细说明:

controlslist 属性可以直接应用于 <video> 元素。要启用它,只需在 HTML 代码中的 <video> 标签中添加 controlslist 属性,并设置其值为一个空格分隔的控件列表。例如:

<video src="my_video.mp4" controls controlslist="nodownload noplaybackrate">

10.1. 可用值

controlslist 支持以下值,这些值可单独使用或组合使用:

  • nodownload:阻止显示下载按钮,防止用户直接下载视频文件。这有助于保护视频内容的版权或限制离线访问。

  • nofullscreen:禁止全屏模式按钮的显示,防止用户将视频切换到全屏观看。

  • noremoteplayback(或 disableremoteplayback):禁用远程播放选项,如在连接到同一网络的其他设备(如智能电视)上投射或播放视频。

  • noplaybackrate:移除播放速度控制器,用户将不能调整视频的播放速率(如快进、慢放或倒带)。

  • nokeyboard(实验性,非标准):在某些浏览器中,可能用于隐藏键盘快捷键提示或禁止通过键盘操作视频控件。

请注意,不是所有浏览器都完全支持所有的 controlslist 值,尤其是在 nokeyboard 这种较新或实验性的特性上。对于广泛支持的值(如 nodownloadnofullscreennoremoteplaybacknoplaybackrate),现代浏览器通常会遵循这些指示。

10.2. 默认行为与覆盖

默认情况下,如果仅使用 controls 属性而未指定 controlslist,浏览器将显示一组完整的标准控件,包括播放/暂停按钮、进度条、音量控制、全屏按钮、下载按钮(如果支持),以及可能的播放速度控制器。

当指定了 controlslist 并包含否定属性(如 nodownload),浏览器会相应地隐藏或禁用指定的控件。例如,如果希望仅显示基本的播放/暂停、进度条和音量控制,同时禁止下载、全屏和播放速度调整,可以这样设置:

<video src="my_video.mp4" controls controlslist="nodownload nofullscreen noplaybackrate">

10.3. 浏览器兼容性

虽然 controlslist 是 HTML5 规范的一部分,但实际支持情况可能因浏览器版本不同而有所差异。一些较新的或实验性的功能(如 nokeyboard)可能只有在特定浏览器或特定版本中才能使用。在实际应用时,建议查阅最新的浏览器兼容性数据,确保所使用的 controlslist 值在目标用户群体的主流浏览器中得到良好支持。

10.4. 替代方案

对于不被所有浏览器广泛支持的 controlslist 值,或者为了实现更定制化的视频播放器外观与功能,开发者可以选择使用第三方 JavaScript 库或自定义 CSS/JavaScript 来创建完全自定义的视频控件界面。这种情况下,可以移除 controls 属性并自行编写交互逻辑,从而实现对视频播放器的完全控制。

总结来说,HTML5 <video> 标签的 controlslist 属性提供了一种简便的方法来定制浏览器默认视频控件的显示内容,允许开发者根据项目需求隐藏特定功能以增强内容保护或优化用户界面。在使用时应注意浏览器兼容性,并在必要时结合自定义代码实现更复杂的播放器定制。

二、API 方法

1. play()

  • 定义:开始或恢复视频播放。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.play();
    

2. pause()

  • 定义:暂停视频播放。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.pause();
    

3. load()

  • 定义:重新加载视频源。通常在更改 src 属性或需要刷新视频状态时调用。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.src = 'new_video.mp4';
    videoElement.load();
    

4. currentTime

  • 定义:获取或设置当前视频播放的时间位置(以秒为单位)。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');// 获取当前播放时间
    let currentTime = videoElement.currentTime;// 跳转到指定时间
    videoElement.currentTime = 30;  // 秒
    

5. duration

  • 定义:获取视频的总时长(以秒为单位)。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    let totalDuration = videoElement.duration;
    

6. volume

  • 定义:获取或设置视频的音量。取值范围为 0.0(静音)至 1.0(最大音量)。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');// 获取当前音量
    let currentVolume = videoElement.volume;// 设置音量
    videoElement.volume = 0.5;  // 一半音量
    

7. playbackRate

  • 定义:获取或设置视频的播放速率。大于 1.0 表示加速播放,小于 1.0 表示慢速播放,1.0 为正常速度。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');// 获取当前播放速率
    let playbackRate = videoElement.playbackRate;// 设置播放速率
    videoElement.playbackRate = 1.5;  // 1.5 倍速播放
    

三、事件

1. play

  • 定义:当视频开始或恢复播放时触发。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.addEventListener('play', function () {console.log('Video is now playing.');
    });
    

2. pause

  • 定义:当视频暂停时触发。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.addEventListener('pause', function () {console.log('Video has been paused.');
    });
    

3. ended

  • 定义:当视频播放到达结尾时触发。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.addEventListener('ended', function () {console.log('Video has finished playing.');
    });
    

4. timeupdate

  • 定义:当当前播放时间发生变化时频繁触发。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.addEventListener('timeupdate', function () {console.log('Current time:', videoElement.currentTime);
    });
    

5. error

  • 定义:当视频加载或播放过程中发生错误时触发。
  • 示例(JavaScript):
    const videoElement = document.querySelector('video');
    videoElement.addEventListener('error', function (event) {console.error('An error occurred:', event);
    });
    

四、多源支持

为了兼容不同的浏览器对视频编码格式的支持,可以使用 <source> 标签提供多个视频源。浏览器会自动选择第一个能成功加载和播放的源:

<video controls><source src="my_video.mp4" type="video/mp4"><source src="my_video.webm" type="video/webm"><source src="my_video.ogv" type="video/ogg">Your browser does not support the video tag.
</video>

五、自定义 video controlslist 的布局与样式

在使用 video 原生 controlslist 情况下,自定义 video controlslist 的布局与样式,实际上就是通过 原生 JavaScript 以及 Css 对 video controlslist 标签 DOM 样式或内容进行自定义修改。当然,也可以隐藏原生的controlslist,通过调用 video 相关 API 创建新的自定义controlslist 的布局与样式。

1、开启 shadow DOM

在Chrome浏览器中打开开发者调试工具-设置-Elements:勾选如图当中的 Show user agent shadow DOM。

在这里插入图片描述
然后再去审查Video元素,就能够看到如图当中的 dom 结构。

在这里插入图片描述

2、样式修改

通过CSS 修改 videco controlslist 伪类的 属性可以修改controlslist 的样式。

请注意,这些样式可能需要特定的前缀,并且随着浏览器更新,其内部结构可能发生变化,导致上述代码失效。

3、内容修改

可以通过原生 JavaScript 可以修改 videco controlslist 的内容显示。

综上所述,HTML5 <video> 标签提供了丰富的属性、API 方法以及事件支持,使得开发者可以轻松地在网页中嵌入视频内容,并对其进行精细控制和交互处理。通过合理运用这些功能,可以创建出具有良好用户体验的多媒体网页。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux-centos虚拟机设置固定ip

环境准备 虚拟机版本&#xff1a;centos7 安装环境&#xff1a;vmware17 1、设置网络连接 虚拟机-设置-网络适配器-NAT模式 2、查看子网信息 编辑-虚拟网络编辑器-NAT模式-NAT设置 查看子网ip和网关ip 下一步要用 3、修改配置文件 vim /etc/sysconfig/network-scripts…

接口压力测试 jmeter--入门篇(一)

一 压力测试的目的 评估系统的能力识别系统的弱点&#xff1a;瓶颈/弱点检查系统的隐藏的问题检验系统的稳定性和可靠性 二 性能测试指标以及测算 【虚拟用户数】&#xff1a;线程用户【并发数】&#xff1a;指在某一时间&#xff0c;一定数量的虚拟用户同时对系统的某个功…

Linux 搭建私有yum源仓库

一、环境准备 IP系统版本作用192.168.140.155CentOS 7.9.2009yum源仓库192.168.140.153CentOS 7.9.2009测试 准备两台服务器&#xff0c;一台作为yum源仓库&#xff0c;另一台作为测试使用。 二、搭建yum源服务器 &#xff08;无法连接外网的情况&#xff0c;需要去官网下载镜…

IP定位技术在解决广告恶意点击问题中的应用

随着互联网的迅猛发展&#xff0c;数字广告已成为企业推广产品和服务的重要方式。然而&#xff0c;随之而来的是广告恶意点击的问题&#xff0c;这不仅导致广告主的损失&#xff0c;也影响了广告生态的健康发展。为了解决这一问题&#xff0c;IP定位技术应运而生&#xff0c;成…

PACNet CellNet(代码开源)|bulk数据作细胞分类,评估细胞命运性能的一大利器

文章目录 1.前言2.CellNet2.1CellNet简介2.2CellNet结果 3.PACNet3.1安装R包与加载R包3.2加载数据3.3开始训练和分类3.4可视化分类过程3.5可视化分类结果 4.细胞命运分类和免疫浸润比较 1.前言 今天冲浪看到一个细胞分类性能评估的R包——PACNet&#xff0c;它与转录组分析方法…

第一篇【传奇开心果系列】我和AI面对面聊编程:深度比较PyQt5和tkinter.ttk

传奇开心果系列博文 系列博文目录我和AI面对面聊编程系列 博文目录前言一、今天我们面对广大读者选择PyQt5和tkinter.ttk做比较这个话题目的是什么&#xff1f;二、举一个最简单的pyqt5信号和插槽的例子三、这和tkinter的点击事件有什么区别&#xff1f;四、如何选择&#xff1…

极速、易用、高度定制化的开源社区交流平台:Flarum

Flarum&#xff1a;轻盈高效&#xff0c;引领未来社区互动新风尚的革命性论坛平台- 精选真开源&#xff0c;释放新价值。 概览 Flarum是一款精心打造的现代网站讨论平台&#xff0c;以其精炼高效而著称。作为 esoTalk 和 FluxBB 的理念和技术的集大成者&#xff0c;Flarum 致力…

5.11 mybatis之returnInstanceForEmptyRow作用

文章目录 1. 当returnInstanceForEmptyRowtrue时2 当returnInstanceForEmptyRowfalse时 mybatis的settings配置中有个属性returnInstanceForEmptyRow&#xff0c;该属性新增于mybatis的3.4.2版本&#xff0c;低于此版本不可用。该属性的作用官方解释为&#xff1a;当返回行的所…

jmeter及PTS压测介绍和使用

一、常用压测工具&#xff1a; loadrunner apache ab&#xff08;单接口压测最方便&#xff09; jmeter 阿里云PTS&#xff08;原生上传jmeter脚本进行压测&#xff09; 二、jmeter可以压测不同的协议和应用 web http https jdbc for database TCP 三、使用场景及优点 1、功能…

分布式限流——Redis + Lua脚本实现令牌桶算法

主要思路概括如下&#xff1a; 定义数据结构&#xff1a; 使用Redis存储令牌桶的状态&#xff0c;包括当前令牌数&#xff08;KEYS[1]&#xff09;和上一次令牌填充的时间戳&#xff08;KEYS[1]:last&#xff09;。 计算新增令牌&#xff1a; 获取当前系统时间与上次令牌填充时…

康耐视visionpro-CogHistogramTool操作操作工具详细说明

CogHistogramTool]功能说明&#xff1a; 对图像区域中的像素值进行灰度值统计 CogHistogramTool操作说明&#xff1a; ①.打开工具栏&#xff0c;双击或点击鼠标拖拽添加CogHistogramTool工具 2.添加输入图像&#xff0c;点击鼠标右键“链接到”或以连线拖拽的方式选择相应输入…

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU+外部etcd使用containerd部署K8S 1.26.15容器版集群(一主多从)》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本&#xff0c;出现了一个问题&#xff0c;就是在pod中访问百度网站&#xff0c;大…

SnapGene Mac激活版 分子生物学软件

SnapGene Mac是一款功能全面、操作便捷的综合性分子生物学软件&#xff0c;专为Mac用户打造。它集成了DNA序列编辑、分析、可视化和团队协作等多种功能&#xff0c;为科研人员提供了一个高效、可靠的分子生物学研究工具。 SnapGene Mac激活版下载 在SnapGene Mac中&#xff0c;…

java八股文知识点讲解(个人认为讲的比较好的)

1、解决哈希冲突——链地址法&#xff1a;【第7章查找】19哈希表的查找_链地址法解决哈希冲突_哔哩哔哩_bilibili 2、解决哈希冲突——开放地址法 &#xff1a; 【第7章查找】18哈希表的查找_开放定址法解决哈希冲突_哔哩哔哩_bilibili 3、小根堆大根堆的创建&#xff1a;选择…

夸克AI PPT初体验:一键生成大纲,一键生成PPT,一键更换模板!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

免费的 ChatGPT、GPTs、AI绘画(国内版)

&#x1f525;博客主页&#xff1a;白云如幻❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ ChatGPT3.5、GPT4.0、GPTs、AI绘画相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚…

图像生成模型浅析(Stable Diffusion、DALL-E、Imagen)

目录 前言1. 速览图像生成模型1.1 VAE1.2 Flow-based Model1.3 Diffusion Model1.4 GAN1.5 对比速览 2. Diffusion Model3. Stable Diffusion3.1 Text Encoder3.2 Decoder3.3 Generation Model 总结参考 前言 简单学习下图像生成模型的相关知识&#x1f917; 以下内容来自于李宏…

OpenCV从入门到精通实战(六)——多目标追踪

基于原生的追踪 使用OpenCV库实现基于视频的对象追踪。通过以下步骤和Python代码&#xff0c;您将能够选择不同的追踪器&#xff0c;并对视频中的对象进行实时追踪。 步骤 1: 导入必要的库 首先&#xff0c;我们需要导入一些必要的Python库&#xff0c;包括argparse、time、…

Java web应用性能分析之客户端慢

客户端慢的原因包括&#xff1a; 终端设备老化&#xff08;手机、PAD、电脑年限久远、运行期间产生了很多垃圾未清除&#xff09;终端网络设备老化&#xff08;路由器、交换机老化&#xff09;跟我们使用的手机一样&#xff0c;路由器也需要及时更新换代&#xff0c;否则硬件跟…

Word学习笔记之奇偶页的页眉与页码设置

1. 常用格式 在毕业论文中&#xff0c;往往有一下要求&#xff1a; 奇数页右下角显示、偶数页左下角显示奇数页眉为每章标题、偶数页眉为论文标题 2. 问题解决 2.1 前期准备 首先&#xff0c;不论时要求 1、还是要求 2&#xff0c;这里我们都要做一下设置&#xff1a; 鼠…