Javascript Mediaelement.js setCurrentTime在Firefox和使用flash时设置的时间不正确
我使用mediaelement.js组件仅显示部分视频。Javascript Mediaelement.js setCurrentTime在Firefox和使用flash时设置的时间不正确,javascript,jquery,flash,video,mediaelement.js,Javascript,Jquery,Flash,Video,Mediaelement.js,我使用mediaelement.js组件仅显示部分视频。 我已将一个侦听器置于timeupdate事件中,每次视频播放一个片段时,我都希望使用setCurrentTime()跳过它跳到下一个片段。但是,下次调用timeupdate事件时,时间与设置的时间不同(设置时间前几秒)。 这是我的代码: var curr = t.media.getCurrentTime(); if (curr < segments[i][0]) { console.debug(curr.toFixed(1)+'
我已将一个侦听器置于timeupdate事件中,每次视频播放一个片段时,我都希望使用setCurrentTime()跳过它跳到下一个片段。但是,下次调用timeupdate事件时,时间与设置的时间不同(设置时间前几秒)。 这是我的代码:
var curr = t.media.getCurrentTime();
if (curr < segments[i][0]) {
console.debug(curr.toFixed(1)+' jumping to '+segments[i][0]+' in segment '+i+' ['+segments[i][0]+','+segments[i][1]+']');
t.media.setCurrentTime(segments[i][0]);
return;
}
var curr=t.media.getCurrentTime();
如果(当前<段[i][0]){
console.debug(curr.toFixed(1)+跳转到“+i+”[“+segments[i][0]+”,“+segments[i][1]+]”段中的“+segments[i][0]+”);
t、 media.setCurrentTime(段[i][0]);
返回;
}
当我在代码执行后记录当前时间时,它显示当前时间已正确更新(例如,更新为19),但当下次调用事件时,当前时间错误(15.3)。只有在firefox上才会出现这种情况,而在chrome上,当回到flash时,这种情况似乎才起作用。
有什么想法吗?问题在于闪存回退。显然,flash在h.264格式上存在问题,并且会跳到特定的时间。Flash只能跳转到H.264格式视频中的关键帧,因此当媒体元素跳转到某一帧时,Flash播放器会跳转到最近的关键帧。
这个问题可以通过每两帧设置一个关键帧来解决(例如使用ffmpeg-g标志),但更好的解决方案是将视频保持为另一种格式,以便闪存回退 该标志在哪里定义?我现在也有同样的问题。这是一个用于转换视频的ffmpeg选项。如果使用ffmpeg转换视频,则可以设置组帧标志(例如-g 2),并每两个场设置一个关键帧。由于某些原因,设置每个帧都不起作用。