不能,embed标签已无法可靠播放视频;现代浏览器禁用插件支持,video标签才是原生、安全、兼容的替代方案。

embed 标签现在还能不能播视频
不能依赖它播视频了。现代浏览器基本已移除对 Flash、QuickTime、Windows Media 等插件的支持,而 embed 的核心能力恰恰是调用这些插件。即使写对了 src 和 type,Chrome、Edge、Firefox 在 2021 年后默认禁用 NPAPI 插件,embed 会直接空白或报错 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT。
常见错误现象:
- 页面显示为空白区域,控制台无报错但资源未加载
- 弹出“需要安装 Flash Player”提示(实际已不可安装)
- 移动端完全不渲染,iOS Safari 和 Android Chrome 均无视
embed
video 标签为什么能替代 embed
video 是原生 HTML5 媒体标签,不依赖任何插件,由浏览器直接解码渲染。它支持 mp4(H.264 + AAC)、webm(VP8/VP9 + Opus)、ogg(Theora + Vorbis)三种格式,其中 mp4 在所有主流浏览器(含 iOS Safari)中 100% 支持。
关键差异点:
-
embed只能指定一个src,无法 fallback;video可嵌套多个source,按顺序尝试加载 -
embed的autoplay行为不可控(常被浏览器拦截);video配合muted属性可稳定启用自动播放 -
video支持poster、preload、controlsList等精细化控制,embed的类似属性(如autostart、hidden)非标准且失效
如果必须用 embed(比如读取旧系统 PDF 或 SVG 动画)
仅限两类场景:嵌入本地可执行的 SVG 动画(无脚本)、或内网环境可控的 PDF 查看器(如通过 type="application/pdf" 调用浏览器内置 PDF 模块)。此时要注意:
-
src必须指向同源资源,跨域会触发 CORS 阻断(PDF 尤其敏感) -
type值必须准确,例如 PDF 写application/pdf,SVG 写image/svg+xml;写错会导致空白 - 不要设
height/width为百分比值——embed不支持 CSS 百分比解析,只认像素值 - 移动端仍可能失败,务必加降级:
@@@###@@@ <p>您的浏览器不支持嵌入 PDF,请<a href="doc.pdf">点击下载</a></p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill12116" title="DeepBI DHTML 页面生成器"><img src="https://img.php.cn/upload/skill/001/246/273/6adaf20d3191a227.jpg" alt="DeepBI DHTML 页面生成器" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill12116" title="DeepBI DHTML 页面生成器" class="overflowclass">DeepBI DHTML 页面生成器</a> <p class="overflowclass">生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur</p> </div> <a rel="nofollow" href="/xiazai/skill12116" title="DeepBI DHTML 页面生成器" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>
video 标签里误用 embed 的典型坑
有人在 video 标签内部再写 embed,以为能增强兼容性,结果反而破坏语义和可访问性。这是无效操作,浏览器会忽略嵌套的 embed。
正确做法是用 source 多格式 fallback:
<video controls width="640" height="360"><source src="video.mp4" type="video/mp4"><source src="video.webm" type="video/webm"> 您的浏览器不支持 video 标签。 </source></source></video>
注意:不要给 video 加 type 属性——它只属于 source;也不要指望 embed 能“兜底”,它在现代环境中就是个失效开关。
真正容易被忽略的是:即使你只用 video,如果服务端没配好 MP4 的 Accept-Ranges 响应头,拖动进度条就会失败。这不是标签问题,但常被归咎于 HTML 写法。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










