整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

如何用JavaScript实现视频观看时间追踪

网页开发中,跟踪用户与多媒体内容(如视频)的互动是一项常见需求。无论是教育平台、数据分析,还是用户参与度统计,监控用户如何观看视频内容都能提供宝贵的见解。这篇文章将探索如何使用JavaScript实现视频播放时长的跟踪。

目标

我们的目标是跟踪用户观看视频的总时长,包括暂停的时间,并将这些信息更新到后台系统。我们将通过捕获播放、暂停和结束等事件来计算观看时间。

实现步骤

让我们来分解一下实现的关键方面:

1. HTML结构

我们将使用HTML5的<video>标签将视频嵌入到网页中。每个视频元素都将有一个唯一的标识符,以便在JavaScript中轻松访问。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>视频播放时长跟踪</title>
  </head>
  <body>
    <!-- 视频容器 -->
    <video id="video_content1" width="640" height="360" controls>
      <!-- 视频源 -->
      <source src="your_video_source.mp4" type="video/mp4" />
    </video>

    <!-- 包含JavaScript代码 -->
    <script src="your_script.js"></script>
  </body>
</html>

2. JavaScript实现

在JavaScript文件(your_script.js)中,我们将处理视频事件并计算总的观看时间。

// 获取视频元素
let videoMat = "your_video_source.mp4";
let source = document.createElement('source');
let video = document.getElementById('video_content1');

// 设置视频源
source.src = videoMat;
source.type = 'video/mp4';

// 将源附加到视频元素
if (video) {
  video.appendChild(source);

  // 初始化变量
  let startTime = null;
  let lastUpdateTime = null;
  let totalElapsedTime = 0;

  // 'play'事件监听器
  video.addEventListener('play', function () {
    startTime = new Date();
    lastUpdateTime = startTime;
    console.log('视频正在播放。开始时间:', startTime);
  });

  // 'timeupdate'事件监听器
  video.addEventListener('timeupdate', function () {
    if (!video.paused && startTime !== null) {
      const currentTime = new Date();
      const elapsedSinceLastUpdate = (currentTime - lastUpdateTime) / 1000;
      totalElapsedTime += elapsedSinceLastUpdate;
      lastUpdateTime = currentTime;
      console.log("从开始到现在的观看时间: " + totalElapsedTime + " 秒");
    }
  });

  // 'pause'事件监听器
  video.addEventListener('pause', function () {
    // 仅当视频已在播放时存储暂停时间
    if (startTime !== null) {
      const pausedTime = video.currentTime;
      console.log('视频已暂停。暂停时刻:', pausedTime);
      checkAndUpdateItem(totalElapsedTime, 1, 'your_video_title');
    }
  });

  // 'ended'事件监听器
  video.addEventListener('ended', function () {
    // 视频播放已结束
    checkAndUpdateItem(totalElapsedTime, 1, 'your_video_title');
  });

  // 'play'事件监听器(从暂停时间继续播放)
  video.addEventListener('play', function () {
    // 如果视频之前暂停,继续从暂停时刻播放
    if (startTime !== null) {
      video.currentTime = video.currentTime;
    }
  });
}

解释

  1. HTML结构:我们使用<video>标签嵌入视频,并提供一个唯一标识符(video_content1)以便在JavaScript中访问。我们在body末尾包含JavaScript文件,以确保DOM加载完成后再运行脚本。
  2. JavaScript实现
  • 我们动态设置视频源。
  • 设置了播放、时间更新、暂停和结束事件的监听器。
  • 在‘play’事件中,我们捕获开始时间和最后更新时间。
  • 在‘timeupdate’事件中,我们不断计算自上次更新以来的观看时间。
  • 视频暂停时,我们存储暂停时间并更新后台。
  • ‘ended’事件表示视频播放结束。

结论

实现视频播放时长的跟踪可以增强用户分析,提供有关用户参与度和内容受欢迎程度的见解。这里提供的JavaScript代码为您集成视频跟踪到网页应用中提供了基础。

记得将‘your_video_source.mp4’‘your_video_title’替换为实际的视频源和标题。

祝您编码愉快!

在很多网站上都会使用到视频和音频,HTML5 中提供了展示视频和音频的标签。向网页嵌入视频可以使用 <video> 标签,而嵌入音频可以使用 <audio> 标签。这两个标签都是 HTML 5 中新增的标签,两个标签中的属性和方法也很类似,但也有些不同。其中 audio 元素用于定义声音,比如音乐, video 元素用于定义视频,如电影等。

向网页中嵌入视频

<video> 标签可以用于定义视频,且提供了播放、暂停、音量控件来控制视频。举个例子,像我们侠课岛网站上,课程视频播放,就是通过 <video> 标签来实现的。下面我们来看一下如何向网页中嵌入一个视频。

示例:

首先我们准备一个视频,例如一个 test.mp4,然后使用 <video> 标签嵌入视频,如下所示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>HTML5学习(9xkd.com)</title>
    </head>
    <body>
        <video src="./test.mp4" controls="controls" width="700px" height="400px"></video>
    </body>
</html>

在浏览器中的预览效果:

从上图中可以看到,我们通过 <video> 标签成功向网页中插入了一个视频, 其中 src 属性用于引入要播放的视频的 URL,注意视频地址一定要正确,如果地址错误,视频是不能显示的。然后我们通过 width、height 属性设置了视频的宽度为 700px ,高度为 400px。

然后可以看到,视频上还显示了播放、调整音量等控件,当我们点击播放按钮时,视频就会开始播放。这是因为我们设置了 controls 属性,如果我们没有设置这个属性,视频将会显示一个静止的画面,并且不管怎么点击都是没有反应的。大家可以试一下,不设置 controls 属性然后在浏览器中查看演示效果,这里就不演示给大家看了。

video 元素中的常用属性如下所示:


有些比较老的浏览器可能不支持 <video> 标签,例如 IE8 及以下的浏览器就不支持,而 IE9+、Firefox、Opera、Chrome、Safari 等浏览器都支持 <video> 标签。

所以我们可以在 <video> 标签中放置文本内容,这样当某个浏览器不支持此标签时,就可以显示提示内容:

<video src="./test.mp4" controls="controls" width="700px" height="400px">
    您的浏览器不支持 video 标签
</video>

这样用户就会知道,是因为浏览器不支持所以加载视频不成功,可以换一个浏览器。

视频的格式

像我们平时看到的视频格式有很多种,例如常见的有 mp4、AVI、mov、rmvb、Ogg 等等, 目前 video 元素支持的视频格式有下面三种:


这三种视频格式,在不同的浏览器中兼容性不同,例如 MP4 格式不支持 Firefox 和 Opera 浏览器,Ogg 格式不支持IE、Safari 浏览器,WebM 格式不支持IE、Safari 浏览器等。

所以我们可能需要在不同的浏览器中使用不同的视频格式,这需要用到 <source> 标签。

source标签

<source> 标签可以为媒体元素定义媒介资源,例如 video 和 audio 元素。

例如 <video> 标签中可以包含多个 <source> 标签,<source> 标签可以链接不同的视频文件,浏览器将使用第一个可识别的格式。

示例:

例如我们插入的视频播放器,带有两个源文件,浏览器会根据需要来选择源文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>HTML5学习(9xkd.com)</title>
    </head>
    <body>
        <video controls="controls" width="700px" height="400px">
            <source src="./test.mp4" type="video/mp4">
            <source src="./test.ogg" type="video/ogg">
            您的浏览器不支持 video 标签
        </video>
    </body>
</html>

像上述代码中,如果是 Safari 浏览器就会选择第一个源文件,如果是 Firefox 浏览器则会选择第二个源文件。

<source> 标签有三个属性:


向网页中嵌入音频

向网页中嵌入音频可以使用 <audio> 标签,此标签的使用和 <video> 标签类似。插入视频是有画面的,我们也可以调整视频的宽和高等,而插入音频是没有画面的。

audio 元素支持的格式和 video 元素也有一点区别:


示例:

例如我们插入一段音频,在浏览器中可以看到,是没有画面的,只有声音:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>HTML5学习(9xkd.com)</title>
    </head>
    <body>
        <audio controls="controls">
            <source src="./test.mp4" type="audio/mpeg">
            <source src="./test.ogg" type="audio/ogg">
            您的浏览器不支持 audio 标签
        </audio>
    </body>
</html>

在浏览器中的演示效果:

向网页中嵌入音频时,也可以通过 <source> 标签来指定两个源文件,<source> 标签允许规定两个视频或者音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择。

audio 元素中的常用属性和 video 元素差不多,但是 audio 元素中没有 width、height 等属性。

常用属性如下所示:


总结

向网页中嵌入视频和音频其实很简单,要注意 video 元素 和 audio 元素支持的视频、音频格式类型,如果插入的视频格式不支持,则视频或音频不会显示。

更多可以查看链接:https://www.9xkd.com/

GV是一种视频容器格式,通常用于播放带有HTML标签的网页视频。另一方面,MP4是一种压缩的多媒体文件格式,用于通过网络的流式传输格式。在某些情况下,您需要将视频从MP4转换为OGV格式,使文件与HTML更加兼容,因此可以轻松地在不同的浏览器(如Google Chrome和火狐)中播放。随着HTML5的日益普及,OGV文件与HTML5的关系使其用途更加突出。在本文的以下部分中,我们将讨论如何在线将MP4转换为OGV 的方法。

第1部分.3个在线将MP4转换为OGV的转换器

在线转换器是转换文件格式的好方法,因为这些工具简单易用。在使用大多数这些在线程序时,您只需添加所需的文件并选择输出格式。然后可以从界面本身下载转换后的文件。下面讨论的是一些将MP4转换为OGV格式的流行在线工具。

1. Convertio

这是最常用的在线转换器之一,除了 MP4到OGV 之外,还支持所有流行的格式。该转换器允许从PC,Dropbox,Google云端硬盘和URL添加所需的视频文件。该程序允许一次添加多个文件,最大可以添加100MB的文件大小。转换后,可以将文件添加到PC,Dropbox或Google云端硬盘。

使用Convertio将MP4转换为OGV的步骤:

第1步:在PC浏览器上打开。

第2步:从您的PC,Dropbox,Google云端硬盘或URL添加MP4文件。

第3步:点击“转换”开始转换。

2. FileZigZag

这是另一个流行的在线程序,允许通过几个简单的步骤将MP4转换为OGV。该程序可免费使用,无需下载或安装。转换后的文件可以从程序界面下载,也可以将其链接发送到电子邮件地址。支持一系列图像,音频和视频文件格式进行转换。

使用FileZigZag将MP4转换为OGV的步骤:

第1步:在PC浏览器上打开。

第2步:点击“选择”从您的PC添加MP4文件。

第3步:在“转换为:”部分下,从视频类别中选择OGV作为输出格式。

第4步:输入您要获取转换后的文件链接的电子邮件地址,然后单击“转换”开始该过程。

3. FreeFileConvert

FreeFileConvert是另一个在线转换器,支持将视频转换为多种流行格式。该程序允许通过PC,Google云端硬盘,Dropbox和URL添加文件。最多可以将5个文件的组合大小添加到100MB进行转换。该转换器是免费使用的,并且具有简单的界面。

使用FreeFileConvert将MP4转换为OGV的步骤:

第1步:在PC浏览器上,打开。

第2步:点击“选择文件”,从计算机,URL或云中添加所需的MP4文件。

第3步:在“输出格式”下,从视频类别中选择OGV作为所需的格式。

第4步:点击“转换”开始转换过程。

第2部分.在线将MP4转换到OGV的局限性

对于基本的转换需求,在线转换器是不错的选择。但是,如果您正在寻找高级选项,那么这些工具就不合适了。下面列出了与在线转换器相关的许多限制:

1、文件大小是要考虑的重要因素。这些网站的大小受到限制。达到一定大小的文件后,您的转换将无法实现。

2、视频播放完毕后,您将不得不重新下载文件。而且,转换速度是另一个问题。这可能需要很长时间。

3、您不能期望从此类转换获得最佳质量。转换完成后,质量通常会下降。

4、与专业的完整工具相比,受支持的格式数量更少。

5、您需要一个稳定且更好的在线转换器网络,否则,转换将偶尔停止。

6、可能会要求您付款以享受文件的完整转换。

7、大多数在线转换器不支持任何其他功能,例如编辑文件和批处理。

第3部分.如何使用转换工具轻松将MP4转换为OGV

考虑到本文上面列出的在线工具的局限性,可以得出结论,专业软件是MP4到OGV在线转换器的替代品。万兴优转就是一种可以与所有类型的视频转换完美配合的软件。该软件与Windows以及Mac系统兼容,并能以其他超快速度将MP4转换为OGV以及其他格式。

在Windows/Mac上如何将MP4转换为OGV的步骤

步骤1将MP4视频文件添加到万兴优转

您可以点击+添加文件按钮以从计算机文件夹中添加MP4视频文件,或者只需拖动将您的视频直接拖放到文件列表中。

步骤2选择OGV作为视频文件的输出格式

从输出格式列表中选择MP3作为输出格式,单击输出格式:的下拉图标。然后选择视频 > OGV。

步骤3将MP4文件转换为OGV

完成所有操作后单击转换按钮,即可将MP4文件转换为OGV。并且所有任务将以高速度和高质量完成。转换速度通常取决于原始视频大小和您的PC配置。您可以单击打开文件位置以获取转换后的视频。