系列定位:零基础友好、无门槛入门,从基础语法到企业规范、实战开发、兼容适配全覆盖,适合前端初学者、转行开发者、在校学生,全程配套代码案例,可直接上手实操 第五章:多媒体与图片标签|丰富页面视觉内容 5.3 audio、video 标签使用、兼容格式、自动播放设置
前言
前面我们学习了图片img标签,网页除了图片,音频、视频也是非常高频的多媒体内容。在 HTML5 之前,网页播放音视频依赖 Flash 插件,兼容性差、体验糟糕;HTML5 推出原生 ``、<video>标签,不需要插件、原生支持、简单易用,也是企业项目里背景音乐、课程视频、首页背景视频、播客模块的首选方案MDN Web Do...。

本节课你将学到:
- `` 音频标签基础写法与常用属性
<video>视频标签基础写法、poster 封面、宽高设置<source>多资源兼容方案 + 音视频主流格式适配表- 自动播放 autoplay 浏览器限制、muted 静音自动播放(高频踩坑点)
- preload 预加载、loop 循环、controls 控件、playsinline 移动端内联播放
- 企业开发规范、常见 bug、性能优化建议
- 完整可直接复制的实战 Demo
前置说明:布尔属性(controls/autoplay/muted/loop)写法,写属性名即代表开启,不需要写
true/false,企业统一规范:直接写属性名。
一、audio 音频标签基础
`` 用于嵌入音频:背景音乐、播客、音效、语音播报。audio 本身没有可视化播放区域,只在开启controls后显示浏览器自带音频控制面板(播放、暂停、音量、进度条)。
最简写法(单资源)
<!-- controls:显示播放控件 -->
<audio src="music.mp3" controls>
您的浏览器不支持audio音频标签,请升级浏览器!
标签内部文字:降级提示,老浏览器不支持 audio 时展示这段文本,是企业开发强制要求的兜底方案。
二、video 视频标签基础
<video>用于嵌入视频,支持设置宽高、封面海报 poster,是官网宣传视频、课程平台、短视频模块的基础标签。
最简写法(单资源)
<!-- width:视频宽度,高度会自动等比缩放,不建议同时写width+height强行拉伸 -->
<video src="demo.mp4" width="600" controls poster="video-cover.jpg">
您的浏览器不支持video视频标签,请升级浏览器!
</video>
poster="xxx.jpg":视频加载前展示的封面图,企业项目必加,避免空白黑框,提升观感- 不要固定宽高强行拉伸视频,容易变形;优先用 CSS 做响应式适配
三、通用核心属性表(audio 和 video 大部分共用)
表格
| 属性 | 作用 | 备注 |
|---|---|---|
controls |
显示原生播放控制面板 | 没有这个属性,默认看不到播放按钮,适合自定义播放器、背景视频场景 |
autoplay |
准备就绪后自动播放 | ⚠️现代浏览器有严格自动播放策略,有声自动播放默认拦截 |
muted |
默认静音 | 想要 autoplay 生效,绝大多数场景必须搭配 muted |
loop |
播放完成后循环重播 | 首页背景视频、循环背景音乐常用 |
preload |
预加载策略 | auto:预加载全部;metadata:只加载元数据(时长、封面,推荐企业用);none:不预加载,节省流量 |
playsinline |
移动端内联播放(ios 重点) | iPhone Safari 默认点击视频会全屏,加上 playsinline 在页面内播放,移动端 H5 必加 |
小总结移动端坑:ios Safari 不加
playsinline,自动播放会失效、点击直接拉起全屏播放器CSDN博...。
四、兼容方案:source 多资源标签(企业标准写法)
不同浏览器、设备对音视频编码格式支持不一样,只给一个 mp4,部分低版本浏览器、特殊设备会播放失败。 解决方案:使用<source>子标签,写多份不同格式资源;浏览器从上往下读取,加载第一个它支持的文件,type 必须正确填写 MIME 类型,帮助浏览器快速判断是否支持,减少无效请求MDN Web Do...。
✅ audio 多格式兼容示例
<audio controls preload="metadata">
<source src="music.mp3" type="audio/mpeg">
<source src="music.ogg" type="audio/ogg">
<source src="music.wav" type="audio/wav">
浏览器不支持音频播放
✅ video 多格式兼容示例(企业推荐)
<video width="600" controls poster="cover.jpg" preload="metadata">
<!-- mp4兼容性最好放第一位 -->
<source src="demo.mp4" type="video/mp4">
<source src="demo.webm" type="video/webm">
<source src="demo.ogg" type="video/ogg">
浏览器不支持视频播放
</video>
音视频格式兼容性速查表
音频:
- MP3(audio/mpeg):全平台兼容,项目首选
- OGG(audio/ogg):开源格式,Firefox、Chrome 支持
- WAV(audio/wav)无损,体积巨大,很少线上使用
视频:
- MP4(H.264)(video/mp4):企业首选,兼容性天花板,微信、移动端、PC 全支持
- WebM(video/webm)谷歌开源,压缩率好,适合 Chrome/Firefox,体积更小
- Ogg(video/ogg)老开源格式,新项目基本不再优先使用
企业最佳实践:主文件输出 MP4,有性能优化需求额外提供 webm 版本,ogg 作为备用,一般内部项目只保留 mp4 也够用。
五、重点难点:autoplay 自动播放,浏览器策略 + 正确写法(面试高频)
很多新手踩坑:直接写autoplay,本地打开能自动播放,部署上线后失效!
浏览器自动播放规则(2026 现行策略)
所有现代浏览器(Chrome、Safari、Edge、Firefox、移动端浏览器)统一策略: ✅ 静音(muted)+ autoplay 允许自动播放 (首页背景视频最常用) ❌ 有声 autoplay 默认拦截,除非用户提前和页面发生交互(点击、触摸),或者站点达到媒体交互白名单,业务不稳定,不要依赖有声自动播放
1、静音自动播放(稳定可用,背景视频标准写法)
<!-- muted + autoplay,搭配playsinline适配苹果手机 -->
<video width="100%" autoplay muted loop playsinline preload="metadata">
<source src="bg.mp4" type="video/mp4">
</video>
这个就是官网首页全屏背景视频的标准代码!没有 controls 控件,用户看不到播放条,循环静音自动播放。
2、有声自动播放(不推荐,不稳定)
不能直接 autoplay 有声,想要有声自动播放,正确方案:监听用户点击页面后,用 JS 触发 play (),而不是靠标签 autoplay 属性。本节课只讲标签语法,JS 控制媒体 API 后面章节再讲。
新手高频坑清单
- 只写 autoplay,不加 muted → 上线不自动播放
- 苹果移动端视频不写 playsinline → 自动播放失效、点击全屏
- source 不写 type 属性 → 浏览器无法预判格式,加载慢、兼容异常
- preload 写 auto,大视频直接预加载全部 → 首屏加载慢、浪费流量,影响性能评分
六、企业开发规范 & 避坑指南(划重点,面试加分)
- 兜底文字必须写:audio/video 内部写降级提示,兼容上古浏览器
- 线上媒体资源尽量放 CDN,不要和业务静态资源放同一服务器;大视频建议分片流媒体(HLS),本节课是基础标签,后续进阶再讲
- 视频不要过大:首页背景视频尽量控制在 5MB 以内,压缩编码 H.264
- 无障碍:重要视频内容建议搭配
<track>字幕标签,适合教育类项目(拓展知识点) - 不要滥用自动播放音频!有声自动播放非常影响用户体验,大部分产品规范禁止页面打开直接响起声音,容易被用户投诉
- 响应式适配:不要硬写固定 width,推荐 CSS
max-width:100%; height:auto;让视频自适应容器
七、完整综合 Demo,直接复制运行
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>audio video实战演示</title>
<style>
video,audio{
max-width: 100%;
}
</style>
</head>
<body>
<h3>音频播放器(多格式兼容)</h3>
<audio controls preload="metadata">
<source src="music.mp3" type="audio/mpeg">
<source src="music.ogg" type="audio/ogg">
浏览器不支持音频
<h3>视频播放器(带封面、控件)</h3>
<video width="700" controls poster="cover.jpg" preload="metadata">
<source src="demo.mp4" type="video/mp4">
<source src="demo.webm" type="video/webm">
浏览器不支持视频
</video>
<h3>背景循环静音自动播放视频(无控件)</h3>
<video autoplay muted loop playsinline preload="metadata">
<source src="bg.mp4" type="video/mp4">
</video>
</body>
</html>
八、课后练习(零基础必做)
- 准备一个 mp3 音频,写出带 controls、降级提示的 audio 标签
- 准备 mp4 视频,添加 poster 封面,配置多 source 兼容 mp4+webm
- 写一个静音循环自动播放视频,加上 playsinline,模拟官网背景视频效果
- 尝试去掉 muted,观察 autoplay 是否还能生效,理解浏览器拦截策略