我为视频创建了一组自定义导航元素,以模拟在建筑物周围行走(用于消防训练)。 当按下叠加时,例程使用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
答案 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股票浏览器。如果没有,您能告诉我有关您如何编码视频的更多信息吗?添加更多关键帧有助于提高帧精度。