seeking
iOS4にはシークイベントがないため、イベントを検出する必要がありseeked
ます。デバイスではなく機能を検出したいと思います。
ひどいaddEvent
/を作ることもできますが、 のfireEvent
ようなセクシーなものを探してい'seeking' in myElement
ます。
解決策はありますか?
seeking
iOS4にはシークイベントがないため、イベントを検出する必要がありseeked
ます。デバイスではなく機能を検出したいと思います。
ひどいaddEvent
/を作ることもできますが、 のfireEvent
ようなセクシーなものを探してい'seeking' in myElement
ます。
解決策はありますか?
var lastUnixTimeStamp;
var lastCurrentVideoTime;
videoplayer.addEvent('timeupdate',function(){
if( !lastUnixTimeStamp && !lastCurrentVideoTime ){ //not defined at first timeupdate event
lastUnixTimeStamp = new Date().getTime();
lastCurrentVideoTime = videoplayer.currentTime;
return;
}
var videoTimeOffset = videoplayer.currentTime - lastCurrentVideoTime; //how many milliseconds was video running
var realTimeOffset = new Date().getTime() - lastUnixTimeStamp; //how many milliseconds were real time running
//guess the numbers are not accurate, so if the difference between both is f.e. < 100ms, video runs normally
if( (videoTimeOffset - realTimeOffset) > 100 ){
//do your seeking magic
}
lastUnixTimeStamp = new Date().getTime();
lastCurrentVideoTime = videoplayer.currentTime;
})
上記のコメントで述べたように、最善の解決策ではないかもしれませんが、そうするべきです。幸運を
このソリューションは、前方を探している場合にのみ機能します。逆方向にシークする場合は、videoTimeOffset が負かどうかを確認する必要があります。
var lastUnixTimeStamp;
var lastCurrentVideoTime;
videoplayer.addEvent('timeupdate',function(){
if( !lastUnixTimeStamp && !lastCurrentVideoTime ){ //not defined at first timeupdate event
lastUnixTimeStamp = new Date().getTime();
lastCurrentVideoTime = videoplayer.currentTime;
return;
}
var videoTimeOffset = videoplayer.currentTime - lastCurrentVideoTime; //how many milliseconds was video running
var realTimeOffset = new Date().getTime() - lastUnixTimeStamp; //how many milliseconds were real time running
//guess the numbers are not accurate, so if the difference between both is f.e. < 100ms, video runs normally
if( (videoTimeOffset - realTimeOffset) > 100 || (videoTimeOffset < 0 )){
//do your seeking magic
}
lastUnixTimeStamp = new Date().getTime();
lastCurrentVideoTime = videoplayer.currentTime;
})