gpt4 book ai didi

javascript - Mediaelement.js setCurrentTime 在 Firefox 和使用 flash 时设置时间不正确

转载 作者:行者123 更新时间:2023-11-29 10:50:47 24 4
gpt4 key购买 nike

我正在使用 mediaelement.js 组件来仅显示部分视频。
我在 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;
}

当我在执行代码后记录当前时间时,它显示当前时间已正确更新(例如更新为 19),但是当下次调用事件时,当前时间是错误的(15.3)。
它只发生在 firefox 上,当回退到 flash 时,在 chrome 中它似乎可以工作。
有什么想法吗?

最佳答案

问题出在闪退。显然 flash 的 h.264 格式有问题,会跳到特定时间。 Flash 只能跳转到 H.264 格式视频中的关键帧,因此当媒体元素跳到特定帧时,Flash 播放器会跳转到最近的关键帧。
这个问题可以通过每几帧设置一个关键帧来解决(例如通过使用 ffmpeg -g 标志),但更好的解决方案是将视频保持为另一种格式以进行 Flash 回退。

关于javascript - Mediaelement.js setCurrentTime 在 Firefox 和使用 flash 时设置时间不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10648592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com