0

WEBMビデオでJavaScriptを使用するHTML5で、指定された時間間隔で動く形状を表示しようとしています。これらの時間間隔を決定するために、ビデオの現在の時刻を返す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 

クロム:

            [10,20,30,40 …. 31560] – multiples of 10

オペラ:

            [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のタイマーの問題でしょうか?

4

1 に答える 1

0

この場合は使用setTimeoutしないでください。videotimeupdate要素のイベントを処理currentTimeし、ハンドラ内に入るようにしてください。

于 2011-11-15T16:40:54.860 に答える