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

标签 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)+' 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/

相关文章:

Jquery从右向左淡入淡出

iphone - 获取启动选项而不覆盖 didFinishLaunchingWithOptions :

java - 从游戏模型获取图像

javascript - d3 事件未触发

javascript - 尝试使用显示/隐藏慢慢淡入/淡出一段

jQuery SlidesJS - 单击导航后无法重新启动动画

javascript - 如何在外部js中编写blade语法

flash - 如何制作黑白flash.media.Video?

javascript - 使 Chrome 扩展程序在某些页面上不起作用

javascript - 在输入键上提交文本字段(AJAX)