首页 > 解决方案 > HTML5 video.currentTime 仅对某些用户返回 NaN

问题描述

我有一个相当简单的 JS,它使用 AJAX 来跟踪用户在视频中的进度。这对数十个用户来说工作得很好,但有少数人偶尔根本不跟踪。

经过多方调查,我发现这是因为某种原因cur_time = Math.round(cvid.currrentTime);正在返回NaN。当这种情况发生时,它会在函数的每个间隔中发生。我无法在任何浏览器或我拥有的任何设备上自己重新创建错误,因此我无法检查控制台。

有谁知道为什么cvid.currentTime不返回有效号码的任何原因,即使视频明显正确加载以便调用cvid.oncanplay

var interv;

var cvid = document.getElementById("cvideo");
cvid.oncanplay = function() {
  interval_track();
};

function ajaxtrack(ended) {
  var cur_time = Math.round(cvid.currrentTime);
  $.ajax({
    url: "/ce/inc/ajax.php?action=vid_track",
    type: "POST",
    async: false,
    data: {
      course_id: '<?=$course_id?>',
      user_id: '<?=$user_id?>',
      cur_time: cur_time,
      ended: ended,
    },
  });
}

function interval_track() {
  clearInterval(interv);
  interv = setInterval(function() {
    if (!cvid.paused) {
      ajaxtrack();
    }
  }, 15000);
}

标签: javascriptjqueryhtml5-video

解决方案


推荐阅读