我构建了一个html5视频播放器,但我发现了时间搜索不准确的问题,特别是在OS X上以及何时启用硬件加速进行帧解码。自己尝试 - 转到任何带有视频的页面(例如:http://www.w3schools.com/html/html5_video.asp )并在控制台中运行这些 -
var vid = document.getElementsByTagName('video')[0];
var vidPlay = setInterval(function(){ vid.currentTime+=(1/30) }, 250);
您会看到视频伪播放,但如果您观看,偶尔会看到不正确的帧。使用不同的帧速率无济于事(这是 1/30 部分)。这是我看到的视频:https://www.youtube.com/watch?v=I561KHt2af4
除了要求用户在浏览器中禁用硬件加速之外,有没有办法解决此问题?
也许在 github 上试试这个库:
视频帧
这是实现它的小提琴
// Just posting this here so I can add a fiddle link.
// Check the link
var currentFrame = $('#currentFrame');
var video = VideoFrame({
id : 'video',
frameRate: 29.97,
callback : function(frame) {
currentFrame.html(frame);
}
});
$('#play-pause').click(function(){
if(video.video.paused){
video.video.play();
video.listen('frame');
$(this).html('Pause');
}else{
video.video.pause();
video.stopListen();
$(this).html('Play');
}
});