如何在 Video.js 播放器中加速/减速视频?

video.jshtml5web development更新于 2024/3/2 21:32:17

在本教程中,我们将学习如何使用 video.js 加速或减速视频。Video.js 是一个广泛使用的开源 HTML5 视频播放器框架。它支持在各种屏幕尺寸的平台上播放视频,例如台式电脑和移动设备。该项目始于 2010 年中期,目前已有数百名贡献者,并在超过 45 万个网站上使用。除此之外,Video.js 还提供了多种选项,可根据您的喜好更改和自定义视频播放器。

在本教程中,我们将使用 video.js 加速或减速视频,从而自定义视频播放器。加速和减速是一项非常重要的功能,在最终用户需要更改视频速度的许多情况下都非常有用。在我们的视频播放器中提供增加或减少视频播放速度的选项,确实会提升用户体验。因此,在本教程的下一部分中,我们将学习如何使用 video.js 更改视频速度。

如何在 Video.js 播放器中加速/减速视频?

在本教程的这一部分,我们将了解如何在 video.js 中添加一个按钮来更改视频的播放速度。每当最终用户选择速度时,我们的视频也会以该速度播放。

先决条件 - 假设您知道如何使用 video.js 库创建一个基本的视频播放器。

为了更改视频的速度,我们将使用一个名为"playbackRates"的方法,它是 video.js 仅公开的默认方法。我们需要将速度倍增值传递给此方法,其余所有操作将由 video.js 自行处理。

例如,如果我们传递值 1.5,那么当从视频播放器中选择此速度时,我们的视频将以 1.5 倍速播放;同样,如果选择的值为 0.5,则我们的视频将以一半的速度(50%)播放。

现在,我们已经了解了playbackRates,要在本地代码中使用此方法,我们有两种选择。要么在"data-setup"属性中使用它,要么将参数作为视频选项传递给我们的视频播放器引用。让我们借助示例来了解这两种方法。

在 HTML 中的"data-setup"中使用playbackRates

我们需要将数据设置中的播放速率数组传递给我们的 <video> 元素。请考虑下面的代码片段,为我们的视频添加播放速度控制器。

<video id="my-video"
   class="video-js vjs-default-skin vjs-big-play-centered"
   controls="true"
   muted="true"
   autoplay="true"
   poster="assets/sample.png"
   preload="auto"
   width="1280"
   height="720"
   data-setup='{"playbackRates": [0.25, 0.5, 1, 1.5, 2]}'
>

如您所见,我们在"data-setup"属性中添加了包含 5 个值的 playingRates 数组,分别为 0.25、0.5、1、1.5、2。选择任意值都会增加或减少视频播放速度。如果选择的值为 0.25 倍,则视频速度将降至 25%,而选择 2 倍则视频速度将升至 200%。

您可以向播放速率数组传递任意多个值,但请确保所有值都严格大于 0,即所有值都必须为正数。

要加快视频速度,请将大于 1 的值传递给数组,例如 1.5、2、2.5 等。同样,要减慢视频速度,请传递 0 到 1 之间的值,例如 0.25、0.5、0.75 等。

示例 1

在我们的视频播放器中添加视频速度控制器后,完整的代码示例如下所示。

<!DOCTYPE html>
<html>
<head>
   <title>Video.JS Speed Up/Down Video Tutorial</title>
   <!-- Importing Video.js CSS / JS using CDN URL -->
   <link href="https://vjs.zencdn.net/7.19.2/video-js.css"rel="stylesheet" />
   <script
      src="https://vjs.zencdn.net/7.17.0/video.min.js"></script>
</head>
<body>
   <video id="my-video"
      class="video-js vjs-default-skin vjs-big-play-centered"
      controls="true"
      muted="true"
      autoplay="true"
      poster="assets/sample.png"
      preload="auto"
      width="560"
      height="340"
      data-setup='{"playbackRates": [0.25, 0.5, 1, 1.5, 2]}'
   >
      <source
         src="https://www.cainiaomax.com/videos/sample720.mp4"
         type="video/mp4"
      >
      </video>
      <script>
         // Initializing the video player with video options
         var player = videojs('my-video');
      </script>
</body>
</html>

在上面的代码中,我们完成了以下操作:

  • 首先,我们在 <head> 标签中使用 CDN URL 导入了 video.js CSS 和 js 文件。

  • 之后,在 <body> 标签内,我们创建了一个 <video> 元素,其 class="video.js vjs-default-skin vjs-big-play-centered",id 为 'my-video'。我们在下面的 <script> 标签中使用了这个 id 来引用播放器。我们还添加了一些标准的 HTML 视频选项,例如控件、静音、自动播放、宽度、高度等。

  • 在 <video> 元素的 'data-setup' 属性中标签中,我们传递了播放速率数组,该数组负责在视频中添加视频速度控制器。

执行上述代码后,将在网页浏览器中创建一个视频播放器,其控制栏中会有一个按钮,其中包含 2 倍、1.5 倍、1 倍、0.5 倍和 0.25 倍等选项。选择大于 1 的值(1.5 倍或 2 倍)将增加视频速度,而点击 0 到 1 之间的值(0.5 倍到 0.25 倍)将降低视频速度。

现在,在本教程的后续部分中,我们将学习如何使用 JavaScript 中的视频选项方法实现相同的效果。

在 JavaScript 的视频选项中使用播放速率

为了使用 JavaScript 在视频播放器中实现相同的视频播放速度控制器,我们需要创建一个包含 playingRates 数组的 JS 对象,然后将其传递给 video.js 播放器引用。

请考虑以下代码片段,该代码片段使用 JavaScript 动态地向我们的视频播放器添加速度控制器。

<script>
// 将播放速率添加到选项
let videoOptions = {
"playbackRates": [0.25, 0.5, 1, 1.5, 2]
}
// 使用视频选项初始化视频播放器
var player = videojs('my-video', videoOptions);
</script>

在上面的代码片段中,我们在 videoOptions 对象中添加了一个包含 5 个不同速度值的播放速率数组,并将其传递给 id 为"my-video"的视频播放器的初始化方法。

示例 2

将这段代码添加到上面的示例中,代码如下所示 -

<!DOCTYPE html>
<html>
<head>
   <title>Video.JS Speed Up/Down Video Tutorial</title>
   <!-- Importing Video.js CSS / JS using CDN URL -->
   <link href="https://vjs.zencdn.net/7.19.2/video-js.css" rel="stylesheet" />
   <script src="https://vjs.zencdn.net/7.17.0/video.min.js">
</head>
<body>
   <video id="my-video"
      class="video-js vjs-default-skin vjs-big-play-centered"
      controls="true"
      muted="true"
      autoplay="true"
      poster="assets/sample.png"
      preload="auto"
      width="560"
      height="340"
      data-setup='{}'
   >
      <source
         src="https://www.cainiaomax.com/videos/sample720.mp4"
         type="video/mp4"
      >
   </video>
   <script>
      // 将播放速率添加到选项中
      let videoOptions = {
         "playbackRates": [0.25, 0.5, 1, 1.5, 2]
      }
      
      // 使用视频选项初始化视频播放器
      var player = videojs('my-video', videoOptions);
   </script>
</body>
</html>

如果您仔细观察上面的示例,就会发现我们从 <video> 标签中的"data-setup"属性中移除了播放速率。相反,我们在 <script> 标签中动态添加了播放速率作为视频选项。

但是,当您在 Web 浏览器中执行上述代码时,将创建与上述示例相同的视频播放器。它将具有相同的 5 个速度乘数值,即 0.25 倍、0.5 倍、1 倍、1.5 倍和 2 倍。选择任何一个乘数都会相应地加快或减慢视频速度。理想情况下,这两种方法都提供相同的功能,但调用函数的方式却大相径庭。"datasetup"在代码的 HTML 部分完成,而"videoOptions"在 js 部分完成。因此,使用上述任何一种方法,您都可以在 video.js 播放器中加速或减速视频。

结论

在本教程中,我们学习了如何使用 video.js 加速或减速视频。我们使用 video.js 原生提供的 playingRates 方法实现了相同的功能。之后,我们通过示例了解了两种使用播放速率方法的方法。


相关文章