2012-03-13 15 views
11

Tìm hiểu công cụ html5. Nó khá tuyệt! Tự hỏi tần suất sự kiện timeupdate kích hoạt.Sự kiện timeupdate thường kích hoạt như thế nào đối với video html5

SIDE LƯU Ý: Có rất nhiều khả năng thú vị với api video js. Ví dụ: có thể sử dụng ctrl + F để tìm kiếm thông qua video. Chạy nhận dạng giọng nói như là một phần của xử lý video, sau đó tạo cửa hàng giá trị khóa dài với dấu thời gian dưới dạng khóa và từ làm giá trị và viết hàm tìm kiếm các trường hợp của các từ đó, nhưng trả về dấu thời gian và tìm kiếm video của bạn. Dù sao, đó chỉ là một ý tưởng điên rồ youtube nên nhảy vào.

Bất kỳ trợ giúp nào về thời gian chờ sẽ thật tuyệt vời!

+0

Xin chào, tìm kiếm từ này là một ý tưởng khá hay! – SexyBeast

+0

Biết bất kỳ ai hoạt động tại Vimeo hoặc YouTube có thể triển khai nó? – Costa

+0

Không. Nó sẽ có chalenges của riêng mình. Nó là tầm thường để lập chỉ mục video nếu nó có phụ đề, nhưng nếu nó không có, thì máy chủ phải tự động hóa lời nói thành văn bản. Vì video không phải lúc nào cũng là video có thời lượng 5-10 giây, có thể dài khoảng 10 phút, quá trình này phải chuyển đổi âm thanh dài thành văn bản, bản thân điều này rất khó, chính xác sang một bên. – SexyBeast

Trả lời

22

Theo this Bugzilla page:

Firefox fires the timeupdate event once per frame. Safari 5 and Chrome 6 fire every 250ms. Opera 10.50 fires every 200ms.

+0

Mmm .... trình duyệt quirks. Cảm ơn! – Costa

+5

Tới Firefox btw, điều đó có ý nghĩa rất nhiều để làm điều đó một lần cho mỗi khung hình. – Costa

+1

Trừ khi bạn ràng buộc một số loại gọi lại; bắn một cuộc gọi lại 25 lần một giây có thể khá chuyên sâu ... đặc biệt là khi bạn không thể điều khiển nó. –

2

tôi đã sử dụng một chức năng ga generic

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

và có dây nó lên với

myPlayer.on('timeupdate', window.vm.throttle(function() { 
     window.vm.setWatched(myPlayer.currentTime()); 
    }, 3000)); 

hy vọng điều này giúp một ai đó.

mã cũi từ http://remysharp.com/2010/07/21/throttling-function-calls/

+0

Liệu myPlayer = document.querySelector ('audio')? Vì Uncaught TypeError: Object # không có phương thức 'on' – loretoparisi