学习html5的东西。这太棒了!想知道timeupdate事件经常发生的频率。
SIDE注意:js video api有很多有趣的可能性。例如,可以使用ctrl + F来搜索视频。运行语音识别作为视频处理的一部分,然后创建一个长键值存储,将时间戳作为键和单词作为值,并编写一个函数来搜索这些单词的实例,但返回时间戳并搜索您的视频。无论如何,这只是一个疯狂的想法youtube应该跳上去。
任何有关timeupdate的帮助都会很棒!
答案 0 :(得分:23)
Firefox每帧触发一次timeupdate事件。 Safari 5和Chrome 6每250毫秒发射一次。 Opera 10.50每200ms发射一次。
答案 1 :(得分:2)
我使用了通用油门功能
_self.throttle = function (fn, threshhold, scope) {
threshhold || (threshhold = 250);
var last,
deferTimer;
return function () {
var context = scope || this;
var now = +new Date,
args = arguments;
if (last && now < last + threshhold) {
// hold on to it
clearTimeout(deferTimer);
deferTimer = setTimeout(function () {
last = now;
fn.apply(context, args);
}, threshhold);
} else {
last = now;
fn.apply(context, args);
}
};
};
并用
连接myPlayer.on('timeupdate', window.vm.throttle(function () {
window.vm.setWatched(myPlayer.currentTime());
}, 3000));
希望这有助于某人。
来自http://remysharp.com/2010/07/21/throttling-function-calls/
的代码答案 2 :(得分:1)
如果您只需要经常运行一个函数,那么最好使用play和pause事件运行它。
下面是一个在播放视频时每3秒运行一个进程的示例。
video.addEventListener('play', () => {
video._updateInterval = setInterval(() => {
// do what you need
}, 3000);
}, true);
video.addEventListener('pause', () => clearInterval(video._updateInterval), true);