timeupdate事件多久会触发一次html5视频

时间:2012-03-13 04:00:22

标签: javascript html5 video

学习html5的东西。这太棒了!想知道timeupdate事件经常发生的频率。

SIDE注意:js video api有很多有趣的可能性。例如,可以使用ctrl + F来搜索视频。运行语音识别作为视频处理的一部分,然后创建一个长键值存储,将时间戳作为键和单词作为值,并编写一个函数来搜索这些单词的实例,但返回时间戳并搜索您的视频。无论如何,这只是一个疯狂的想法youtube应该跳上去。

任何有关timeupdate的帮助都会很棒!

3 个答案:

答案 0 :(得分:23)

根据this Bugzilla page

  

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);