1

我需要检测seeking事件,因为在 iOs4 上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 回答