В HTML5 с использованием JavaScript в видео WEBM я пытаюсь отобразить движущуюся фигуру в указанные промежутки времени. Чтобы определить эти временные интервалы, я использую метод setTimeout (func, 0), который возвращает текущее время видео:
func() {
var time = $gVideo.attr('currentTime');
setTimeout(func, 0);
}
Проблема, с которой я сталкиваюсь, заключается в том, что в разных браузерах показания сильно различаются.
Например, Firefox вернет:
[0,10,90,130,210,220,250,340,460,590,760,960,1090,1220,1430,1550,1760,1880,2010,2060,2090,2130,2170,2220,2260,30130,30140,30200,30260,30290,30410,30580,30750,30990,31040,31160,31240,31290,31410,31500,31530,31560] – irregular increments
Chrome:
[10,20,30,40 …. 31560] – multiples of 10
Opera:
[0,10,20,30,40,50,140,230,340,430,520,710,870,1030,1220,1290,1460,1550,1720,1820,1980,1990,2170,2260,2420,2600,2760,2850,3010,3110,3290,3370,3560,3640,3800, …. 31560] – irregular increments
Поскольку во всех браузерах важно получать одинаковые результаты, как в Chrome, пожалуйста, сообщите, в чем заключается недостаток моей реализации. Может быть такая большая разница во временах, возвращаемых реализациями видео в браузерах, или это проблема таймера в JavaScript?