Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在video.js中捕获手动搜索?_Javascript_Video.js - Fatal编程技术网

Javascript 如何在video.js中捕获手动搜索?

Javascript 如何在video.js中捕获手动搜索?,javascript,video.js,Javascript,Video.js,每次我手动搜索或使用player.currentTime(time)更改时,video.js中都会触发一个seek事件。是否有可能区分这些工作流 谢谢。一个选项是monkey patchplayer.currentTime,以便在调用时设置一些变量(比如,记录时间戳)。然后,您可以检查seek处理程序中的时间戳,并确定currentTime最近是否被调用过,以至于它可能是seek事件的原因 var timeOfLastTimeChange = 0; (function() { var r

每次我手动搜索或使用
player.currentTime(time)
更改时,video.js中都会触发一个
seek
事件。是否有可能区分这些工作流


谢谢。

一个选项是monkey patch
player.currentTime
,以便在调用时设置一些变量(比如,记录时间戳)。然后,您可以检查
seek
处理程序中的时间戳,并确定
currentTime
最近是否被调用过,以至于它可能是
seek
事件的原因

var timeOfLastTimeChange = 0;
(function() {
    var realCT = player.__proto__.currentTime;
    player.__proto__.currentTime = function(time) {
        timeOfLastTimeChange = Date.now();
        return realCT.apply(this, arguments);
    }
})();

然后在
查找的
处理程序中执行
Date.now()-timeOfLastTimeChange
,查看调用
currentTime
后的毫秒数。如果大于某个阈值,则假定更改是由于用户交互造成的。

谢谢,@apsillers,好主意。我会试试的。