在Android上为HTML5视频设置currentTime无法正常工作

时间:2014-03-07 02:39:30

标签: javascript android html5 video

我为视频创建了一组自定义导航元素,以模拟在建筑物周围行走(用于消防训练)。 当按下叠加时,例程使用vidElmt.currentTime = 5跳转到预定的位置; (例如)。这在Windows(Chrome,FF和IE 11)以及iPad(Safari)上运行良好,但是当我在我的Android手机(4.3,使用Chrome或内置浏览器)上试用时,视频会跳到错误的位置斑点。例如,如果我将其设置为跳到5秒的位置,它看起来像是跳到2,3或4秒的位置。

我知道有些人可能会指出我可能会尝试跳到尚未加载的位置,但我知道我跳到的视频部分肯定已经加载了。

我想知道这是不是我的视频格式(mp4)。我已经搜索过Android上的视频标签和currentTime是否有任何问题,但我找不到任何内容。

这是我的演示链接,如果你想亲自检查一下:http://eqsim.com/fesim/当播放头到达侧面/位置时,它应该循环该特定部分,你可以按下点亮的箭头键最多改变位置。

我很感激任何建议!

-jonathan

1 个答案:

答案 0 :(得分:3)

我怀疑您可能需要在一段时间内继续查询视频,直到您想要的帧可以查找为止。可以找到一个完整的工作示例in this jsbin,但相关的代码是:

  function isSeekable(time) {
    for (var i=0; i<video.seekable.length; i++) {
      if (video.currentTime > video.seekable.start(i) && video.currentTime < video.seekable.end(i)){
       return true
      }
    }
    return false
  }

这对你有用吗?它似乎适用于我的Android 4.3股票浏览器。如果没有,您能告诉我有关您如何编码视频的更多信息吗?添加更多关键帧有助于提高帧精度。