HTML5 Video标签的属性、方法和事件汇总,以及常用视频插件推荐

🚀 个人简介:某大型国企资深软件研发工程师,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~

💟 作 者:码喽的自我修养🥰

📝 专 栏:HTML5与CSS3 🎉

🌈 创作不易,如果能帮助到带大家,欢迎 收藏+关注💕

HTML5 **

常用属性:

src: 定义视频的URL。

javascript 复制代码
<video src="myVideo.mp4"></video>

poster: 设置视频尚未加载或播放时显示的图像URL。

javascript 复制代码
<video src="myVideo.mp4" poster="thumbnail.jpg"></video>

preload : 控制视频数据的加载策略,可以是**"auto"(默认,根据浏览器决定)、"metadata"(只加载元数据,如长度)或"none"**(不预先加载)。

javascript 复制代码
<video src="myVideo.mp4" preload="auto"></video>

autoplay: 规定视频是否应该在就绪后立即自动播放。

javascript 复制代码
<video src="myVideo.mp4" autoplay></video>

controls: 是否显示浏览器自带的播放控制(如播放/暂停按钮、进度条等)。

javascript 复制代码
<video src="myVideo.mp4" controls></video>

loop: 规定视频是否应在结束时重新开始播放。

javascript 复制代码
<video src="myVideo.mp4" loop></video>

widthheight: 设置视频播放器的宽度和高度。

javascript 复制代码
<video src="myVideo.mp4" width="320" height="240"></video>

muted: 规定视频是否静音播放。

javascript 复制代码
<video src="myVideo.mp4" muted></video>

常用方法

HTML5 <video> 元素作为一个JavaScript可操作的对象,拥有许多方法来控制视频播放行为。以下是其中的一些常用方法:

  1. play()
  • 开始播放或继续播放视频。如果视频已经处于播放状态,则此方法无效。
javascript 复制代码
var myVideo = document.querySelector('video');
myVideo.play();
  1. pause()
  • 暂停视频播放。
javascript 复制代码
myVideo.pause();
  1. load()
  • 重新加载视频源或初始化当前选定的来源。这会清除任何现有播放位置或错误状态。
javascript 复制代码
myVideo.load();
  1. currentTime 属性(读写):
  • 读取或设置视频播放的当前时间(单位为秒)。
javascript 复制代码
// 获取当前播放位置 
var currentPos = myVideo.currentTime; 
// 设置新的播放位置 
myVideo.currentTime = 30; // 秒数
  1. duration 属性(只读):
  • 返回视频的总时长(若已知)。
javascript 复制代码
var totalDuration = myVideo.duration;

1. paused 属性(只读):

  • 返回一个布尔值,表示视频是否处于暂停状态。
javascript 复制代码
var isPaused = myVideo.paused;
  1. volume 属性(读写):
  • 设置或获取视频音量(范围0.0-1.0)。
javascript 复制代码
// 设置音量 
myVideo.volume = 0.5; 
// 获取音量 
var volumeLevel = myVideo.volume;
  1. mute()unmute()
  • 静音和取消静音视频。
javascript 复制代码
myVideo.mute(); // 静音
myVideo.unmute(); // 取消静音
  1. requestFullscreen()
  • 请求视频进入全屏模式(需兼容不同浏览器的API,如 mozRequestFullScreen, webkitRequestFullscreen 等)。
javascript 复制代码
if (myVideo.requestFullscreen) {  
 myVideo.requestFullscreen(); 
} else if (myVideo.mozRequestFullScreen) { /* Firefox */  
 myVideo.mozRequestFullScreen(); 
} else if (myVideo.webkitRequestFullscreen) { /* Chrome, Safari and Opera */ 
  myVideo.webkitRequestFullscreen(); 
}
  1. addEventListener()
  • 用于监听视频相关的事件,如前面提及的 play, pause, ended 等。
javascript 复制代码
myVideo.addEventListener('ended', function() { console.log('Video has ended.'); });

这些方法和属性共同构成了对HTML5 <video> 元素的基本控制,使开发者能够实现诸如播放控制、音量调节、播放位置定位、全屏切换等各种功能。

常用事件:

loadstart: 视频加载开始时触发。

javascript 复制代码
var vid = document.querySelector('video'); 
vid.addEventListener('loadstart', function() { console.log('Loading started...'); });

progress: 视频数据正在加载过程中持续触发。

javascript 复制代码
vid.addEventListener('progress', function() { console.log('Data is loading...'); });

loadeddata: 第一帧数据已加载完毕,此时视频可以开始播放,但不一定所有数据都已加载。

javascript 复制代码
vid.addEventListener('loadeddata', function() { console.log('First frame is loaded.'); });

canplay: 当前可用数据足以开始播放,但不保证流畅播放至结尾。

javascript 复制代码
vid.addEventListener('canplay', function() { console.log('Ready to play.'); });

canplaythrough: 预计有足够的数据可以流畅播放至视频结尾。

javascript 复制代码
vid.addEventListener('canplaythrough', function() { console.log('Can play the video through without buffering issues.'); });

play: 视频开始或恢复播放时触发。

javascript 复制代码
vid.addEventListener('play', function() { console.log('Video is playing.'); });

pause: 视频暂停时触发。

javascript 复制代码
vid.addEventListener('pause', function() { console.log('Video is paused.'); });

ended: 视频播放完毕时触发。

javascript 复制代码
vid.addEventListener('ended', function() { console.log('Video has ended.'); });

timeupdate: 当视频播放位置发生变化时持续触发,常用于实时更新进度条。

javascript 复制代码
vid.addEventListener('timeupdate', function() { var currentTime = vid.currentTime; console.log('Current time:', currentTime); });

error: 当视频加载或播放发生错误时触发。

javascript 复制代码
vid.addEventListener('error', function(event) { console.error('An error occurred:', event.target.error); });

以上是一些常见的 <video> 标签属性和事件,它们可以帮助开发者更好地控制视频内容的展现和交互行为。

常用视频插件推荐

虽然HTML5 视频播放并不需要外部库就能在大部分现代浏览器中直接使用,但是为了更好的兼容和扩展,有几个不错的视频插件推荐给大家

Video.js: Video.js 是一个非常流行的开源 HTML5 视频播放器框架,它可以优雅地降级到 Flash 并提供一致的 UI 体验,易于自定义皮肤和扩展功能。官网:https://videojs.com/

Plyr: Plyr 是一个简洁、轻量级的 HTML5 视频和音频播放器,它支持自定义样式并且在各个浏览器之间提供了优秀的兼容性和一致性。官网:https://plyr.io/

Clappr: Clappr 是一个可扩展且易于使用的视频播放器,支持 HLS、MP4 和 Dash 流媒体协议。官网:https://github.com/clappr/clappr

HLS.js: 如果你需要播放 HLS(HTTP Live Streaming)流媒体,HLS.js 是一个纯 JavaScript 的 HLS 解析器和播放器,可以在不支持原生 HLS 的浏览器上播放 HLS 流。官网:https://github.com/video-dev/hls.js

每个库都有各自的特点和优势,可以根据项目需求来选择合适的视频播放库。

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易 ,如果能帮助到大家,希望大家*点点收藏+关注~*💕

更多专栏订阅推荐:

🥕 JavaScript深入研究

👍 前端工程搭建

💕 vue从基础到起飞

✈️ HTML5与CSS3

🖼️ JavaScript基础

⭐️ uniapp与微信小程序

📝 前端工作常见问题与避坑指南

✍️ GIS地图与大数据可视化

📚 常用组件库与实用工具

💡 java入门到实战

相关推荐
逐·風3 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
Devil枫3 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
尚梦4 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
GIS程序媛—椰子4 小时前
【Vue 全家桶】6、vue-router 路由(更新中)
前端·vue.js
前端青山5 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
毕业设计制作和分享5 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
从兄6 小时前
vue 使用docx-preview 预览替换文档内的特定变量
javascript·vue.js·ecmascript
清灵xmf7 小时前
在 Vue 中实现与优化轮询技术
前端·javascript·vue·轮询
大佩梨7 小时前
VUE+Vite之环境文件配置及使用环境变量
前端
GDAL7 小时前
npm入门教程1:npm简介
前端·npm·node.js