1

seekingiOS4にはシークイベントがないため、イベントを検出する必要がありseekedます。デバイスではなく機能を検出したいと思います。

ひどいaddEvent/を作ることもできますが、 のfireEventようなセクシーなものを探してい'seeking' in myElementます。

解決策はありますか?

4

2 に答える 2

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


})

上記のコメントで述べたように、最善の解決策ではないかもしれませんが、そうするべきです。幸運を

于 2012-05-22T09:59:11.203 に答える
0

このソリューションは、前方を探している場合にのみ機能します。逆方向にシークする場合は、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;


})
于 2014-06-30T08:54:15.453 に答える