最简单的用法:直接播放

只需要一个 <video> 标签,并指定 src 属性指向你的视频文件即可。

网页播放html5 video
(图片来源网络,侵删)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">简单视频播放器</title>
</head>
<body>
    <h1>我的第一个 HTML5 视频</h1>
    <video src="my-video.mp4" width="600"></video>
</body>
</html>

代码解释:

  • <video>: 这是 HTML5 中专门用于嵌入视频内容的标签。
  • src="my-video.mp4": src 属性指定了视频文件的路径,这里假设 my-video.mp4 文件和 HTML 文件在同一个目录下。
  • width="600": 设置视频播放器的显示宽度(单位是像素),高度会根据视频的原始比例自动调整。

推荐用法:使用 <source>

由于不同的浏览器对视频编码格式的支持不同(主要是 MP4, WebM, Ogg),为了确保你的视频能在所有现代浏览器上播放,最佳实践是使用 <source> 标签来提供多个格式的视频文件,浏览器会按顺序尝试加载,直到找到它能播放的第一个格式。

<video width="600" 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">
    <!-- 如果浏览器不支持 video 标签,会显示这段文字 -->
    您的浏览器不支持 HTML5 视频,请升级您的浏览器。
</video>

代码解释:

  • <video> 标签不再需要 src 属性。
  • <source>: 为同一个视频提供不同格式的源文件。
    • src: 视频文件路径。
    • type: 非常重要! 告诉浏览器这个文件的 MIME 类型,这可以避免浏览器下载了不支持的格式又丢弃,从而节省带宽。
  • 标签内的文字:如果用户的浏览器非常古老,完全不支持 <video> 标签,那么它会忽略 <source> 标签,并显示这段备用文本。

常用属性

通过给 <video> 标签添加属性,你可以控制视频的播放行为。

网页播放html5 video
(图片来源网络,侵删)
属性 描述
controls controls 必须,向用户显示播放控件(如播放/暂停、音量、进度条、全屏等)。
autoplay autoplay 视频在就绪后马上自动播放。注意: 现代浏览器通常要求视频必须是静音 (muted) 才能自动播放,以避免打扰用户。
muted muted 设置视频音频为静音。
loop loop 视频播放结束后,重新开始播放。
poster image.jpg 指定一张图片,在视频下载完成前或用户点击播放前显示,这能提升用户体验。
preload auto, metadata, none 建议浏览器如何加载视频。auto (默认) 建议加载整个视频;metadata 只加载视频的元数据(如时长、尺寸);none 不建议加载。
width 像素值 设置播放器的宽度。
height 像素值 设置播放器的高度。

示例:一个功能更丰富的播放器

<video 
    width="800" 
    height="450" 
    controls 
    autoplay 
    muted 
    loop 
    poster="video-poster.jpg"
    preload="metadata">
    <source src="my-video.mp4" type="video/mp4">
    <source src="my-video.webm" type="video/webm">
    您的浏览器不支持 HTML5 视频。
</video>

通过 JavaScript 控制

你可以使用 JavaScript 来更精细地控制视频的播放,例如在特定事件发生时播放或暂停视频。

<video> 标签一个 id,这样我们就可以在 JS 中选中它。

<video id="myVideo" width="600" controls>
    <source src="my-video.mp4" type="video/mp4">
</video>
<button id="playPauseBtn">播放/暂停</button>

<script> 标签中编写控制逻辑:

网页播放html5 video
(图片来源网络,侵删)
<script>
    // 获取 video 元素和按钮元素
    const video = document.getElementById('myVideo');
    const playPauseBtn = document.getElementById('playPauseBtn');
    // 为按钮添加点击事件监听器
    playPauseBtn.addEventListener('click', function() {
        // 如果视频已暂停,则播放它
        if (video.paused) {
            video.play();
            playPauseBtn.textContent = "暂停";
        } else {
            // 如果视频正在播放,则暂停它
            video.pause();
            playPauseBtn.textContent = "播放";
        }
    });
    // 监听视频的 'ended' 事件
    video.addEventListener('ended', function() {
        console.log('视频播放完毕!');
        playPauseBtn.textContent = "播放";
    });
    // 监听视频的 'play' 事件
    video.addEventListener('play', function() {
        console.log('视频开始播放。');
    });
</script>

常用的 JavaScript 属性和方法:

  • 属性:

    • video.paused: 返回视频是否处于暂停状态。
    • video.ended: 返回视频是否播放完毕。
    • video.currentTime: 获取或设置视频的当前播放时间(秒)。
    • video.duration: 获取视频的总时长(秒)。
    • video.volume: 获取或设置音量(0.0 到 1.0)。
    • video.muted: 获取或设置是否静音。
  • 方法:

    • video.play(): 播放视频。
    • video.pause(): 暂停视频。
    • video.load(): 重新加载视频。

最佳实践和注意事项

  1. 提供多种格式 (MP4, WebM, Ogg): 这是确保兼容性的黄金法则,MP4 是兼容性最好的,WebM 是现代浏览器(Chrome, Firefox, Edge)推荐的高效格式。
  2. 始终添加 controls: 除非你有非常特殊的需求(比如背景视频自动播放),否则一定要提供 controls 属性,让用户可以控制播放。
  3. 使用 poster 属性: 一个吸引人的预览图可以大大提升用户体验,尤其是在视频加载较慢时。
  4. 考虑移动端: 确保你的视频和播放器在手机上也能良好显示,使用响应式设计(用 max-width: 100% 代替固定宽度)。
  5. 视频文件大小: 视频文件通常很大,会影响网页加载速度,请务必对视频进行压缩和转码,可以使用 HandBrake 等工具。
  6. 字幕: 为了提升可访问性,你可以使用 <track> 标签为视频添加字幕。
    <video controls>
        <source src="my-video.mp4" type="video/mp4">
        <track src="subtitles_en.vtt" kind="subtitles" srclang="en" label="English" default>
        <track src="subtitles_zh.vtt" kind="subtitles" srclang="zh" label="中文">
    </video>

    .vtt 文件是 WebVTT 格式的字幕文件。

创建一个网页视频播放器非常简单,核心就是 <video> 标签,从最基础的 src 属性,到推荐的多格式 <source>,再到通过 controls 属性提供用户界面,最后用 JavaScript 实现高级交互,遵循最佳实践,你的视频就能在绝大多数设备和浏览器上流畅播放。