HTML video:播放控件、自动播放、响应式尺寸与故障排查

HTML video 在网页中嵌入视频播放器。使用 src 或子元素 source 设置文件 URL,并添加 controls 以便用户可以播放和暂停。即使存在自动播放,浏览器策略也可能阻止自动播放。

选择播放体验的属性

属性 目的 检查内容
controls 显示原生播放控件 为普通内容视频提供。不同浏览器显示和可用按钮可能不同。
muted 静音开始 不要期望能够自动播放带声音。静音也不能保证自动播放。
autoplay, loop 自动开始并在结束后重复播放 允许读者停止播放,并考虑动画是否会干扰阅读。
playsinline 在元素位置请求播放 在移动设备上有用,但不能保证在每个设备上显示行为完全相同。
poster 播放前显示的图片 URL 使用可访问的图片,而不是视频 URL。
preload 关于预加载数据的提示 none 表示不预加载;metadata 请求如持续时间等信息;auto 允许加载整个文件。这是浏览器可能忽略的提示。

controls、muted、autoplay 和 loop 是布尔属性,属性存在就表示启用。autoplay="false" 无法关闭自动播放,必须移除 autoplay 属性。请求自动播放需要加载媒体,因此仅设置 preload="none" 也无法阻止下载。

运行完整的视频示例

将此代码保存为 video.html 并在浏览器中打开。它加载 MDN 文档中使用的公共花卉示例,需要联网。对于您自己的服务,请托管您有权使用的视频并替换 URL。

<!doctype html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>HTML 视频播放</title>
  <style>
    body { margin: 24px; font-family: sans-serif; }
    video { display: block; width: 640px; max-width: 100%; height: auto; }
  </style>
</head>
<body>
  <h1>花朵视频</h1>
  <video id="flower" controls playsinline preload="metadata" aria-label="随风摇摆的花朵视频">
    <source src="https://developer.mozilla.org/shared-assets/videos/flower.webm" type="video/webm">
    <source src="https://developer.mozilla.org/shared-assets/videos/flower.mp4" type="video/mp4">
    此浏览器不支持 video 元素。
  </video>
  <p>画面说明:花朵和周围的草叶随风摇摆。</p>
  <p><a href="https://developer.mozilla.org/shared-assets/videos/flower.mp4"
    target="_blank" rel="noopener noreferrer">打开 MP4 视频文件</a></p>
</body>
</html>
  1. 检查是否有带播放按钮的播放器并启动它。花卉应该移动,播放位置应该前进。默认示例没有自动播放或循环属性。
  2. 暂停播放以停止运动。在窄窗口中,播放器应在内容宽度内缩小。
  3. 为了比较重复,只需在开头的视频标签中添加 loop 属性,然后重新打开文件。检查播放是否在到达结束后返回到开始位置,然后移除该属性以恢复原始行为。

source 提供文件格式,以便浏览器可以选择一个支持的候选格式。准备同一视频的真实 WebM 和 MP4 文件;更改文件名扩展名并不会转换格式。播放还取决于 MP4 等容器中使用的视频和音频编解码器。

自动播放和移动设备尺寸

如果您需要自动播放,请通过在打开的视频标签中添加 autoplay muted 来进行比较。保留 playsinline 和 controls。用户偏好、电源节能策略、站点交互历史或其他浏览器规则可能会拒绝自动播放,因此请保留播放按钮。

CSS width: 640px 是所需的显示宽度,而 max-width: 100% 用于限制窄父元素中的溢出。height: auto 保持视频的宽高比。如果您定义了固定比例的框架,object-fit: contain 可保留整个场景,而 cover 则通过裁剪部分边缘来填充框架;请检查重要内容是否仍然可见。

排查播放问题并检查可访问性

  • 文件网址: 直接打开视频链接,并确认文件存在且无需登录即可访问。检查是否误将本地路径当作服务器路径,以及文件名大小写是否匹配。
  • 格式和响应: 检查服务器是否发送正确的video/mp4 或 video/webm MIME 类型,并使用受支持的编解码器。开发者工具中的网络面板可以帮助检查失败的请求和响应头。
  • 自动播放: 如果点击播放有效,将自动播放限制与损坏的文件区分开来。
  • 回退指导: 视频内的文本是为不支持该元素的浏览器准备的。在现代浏览器中,加载失败不会自动将其显示为错误消息。因此,示例将在播放器外部也放置文件链接和场景描述。
  • 包含对白的视频应提供准确字幕,并按需要提供文字稿。使用 track 元素和 WebVTT 文件关联字幕。对仅通过视觉传达的重要信息,还应考虑提供文字说明或音频描述。

请参阅 MDN 视频参考 了解属性,以及 MDN 视频字幕指南 了解字幕文件。