我需要检测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;
})