如何获取HTML5视频中寻找事件的起点?
How to get the starting point of a seeking event in HTML5 Video?
我发现在 HTML5 视频中,当用户通过单击控件执行搜索操作时,无法获取搜索前的时间。
我想做的是,每当用户搜索视频到某个点时,系统会在用户搜索之前准确地知道是在什么点。例如,如果用户正在观看视频直到 2:00,然后在 4:00 单击控件,我们需要跟踪时间 2:00。我试过搜索和搜索事件,但无法获取时间 2:00。它总是 return 我的时间 4:00。有什么解决办法吗?
多亏了 timeupdate
事件,您应该能够追踪到这一点,但会有短暂的延迟:
var video = document.querySelector('video');
video.BP = 0;
video.addEventListener('timeupdate', function(e){
var that = this;
(function(){
setTimeout(function(){
that.BP=that.currentTime;
}, 500);
}).call(that);}
);
video.addEventListener('seeking', function(e){
log('boringPart = '+this.BP+
" gone to "+this.currentTime)
})
function log(txt){document.querySelector('p').innerHTML = txt;}
<video controls="true" autoplay="true" height="200" width="600"><source type="video/ogg" src="http://media.w3.org/2010/05/sintel/trailer.ogv"><source type="video/mp4" src="http://media.w3.org/2010/05/sintel/trailer.mp4"></video>
<p style="position:absolute; top: 0.5em;left: 3em; color: #FFF;background:#000"></p>
使用点击事件来跟踪导致搜索事件的点击。
使用 video.js
的示例
var clickTime = 0;
this.controlBar.on('click', function(){
clickTime = player.currentTime();
});
this.on('seeking', function(){
seekTime = clickTime;
//do stuff
});
我发现在 HTML5 视频中,当用户通过单击控件执行搜索操作时,无法获取搜索前的时间。
我想做的是,每当用户搜索视频到某个点时,系统会在用户搜索之前准确地知道是在什么点。例如,如果用户正在观看视频直到 2:00,然后在 4:00 单击控件,我们需要跟踪时间 2:00。我试过搜索和搜索事件,但无法获取时间 2:00。它总是 return 我的时间 4:00。有什么解决办法吗?
多亏了 timeupdate
事件,您应该能够追踪到这一点,但会有短暂的延迟:
var video = document.querySelector('video');
video.BP = 0;
video.addEventListener('timeupdate', function(e){
var that = this;
(function(){
setTimeout(function(){
that.BP=that.currentTime;
}, 500);
}).call(that);}
);
video.addEventListener('seeking', function(e){
log('boringPart = '+this.BP+
" gone to "+this.currentTime)
})
function log(txt){document.querySelector('p').innerHTML = txt;}
<video controls="true" autoplay="true" height="200" width="600"><source type="video/ogg" src="http://media.w3.org/2010/05/sintel/trailer.ogv"><source type="video/mp4" src="http://media.w3.org/2010/05/sintel/trailer.mp4"></video>
<p style="position:absolute; top: 0.5em;left: 3em; color: #FFF;background:#000"></p>
使用点击事件来跟踪导致搜索事件的点击。 使用 video.js
的示例var clickTime = 0;
this.controlBar.on('click', function(){
clickTime = player.currentTime();
});
this.on('seeking', function(){
seekTime = clickTime;
//do stuff
});