cloneNode() 使 html 视频滞后,有时根本不渲染
cloneNode() makes html video lag and sometimes not render at all
当我单击 video
时,它应该从其原始位置动画到某个目标位置。由于某些原因,我无法为原始 video
元素制作动画,因此我为由 cloneNode()
创建的克隆制作动画。单击时,我只循环浏览大约 5 个视频(长度不到 20 秒)和 5 张图像。我的动画方法只导致视频滞后,有时根本不渲染,而图像似乎不受影响。我注释掉了除一行之外的所有动画代码:
var clone = videoElement.cloneNode( false );
没有动画代码,images/videos 只是瞬间传送到目标位置(这是预期的)。但是,当我相对较快地单击时,不注释那一行,会导致视频有点滞后(如果我幸运的话),有时根本不会在 Chrome 中呈现。在 Edge 中,视频需要几秒钟才能呈现。删除那条线,无论我点击多快,视频 load/render 都很好。
- 为什么会这样?
cloneNode
真的有那么慢吗?
- 这个问题有什么实际的解决办法吗?
问题似乎出在 cloneNode() 上,但事实证明这是因为我使用 mp4 文件作为我的视频源。 mp4 在 Chrome 中已弃用。一旦我转换为 webm 视频文件,lag/rendering 问题就完全消失了。
当我单击 video
时,它应该从其原始位置动画到某个目标位置。由于某些原因,我无法为原始 video
元素制作动画,因此我为由 cloneNode()
创建的克隆制作动画。单击时,我只循环浏览大约 5 个视频(长度不到 20 秒)和 5 张图像。我的动画方法只导致视频滞后,有时根本不渲染,而图像似乎不受影响。我注释掉了除一行之外的所有动画代码:
var clone = videoElement.cloneNode( false );
没有动画代码,images/videos 只是瞬间传送到目标位置(这是预期的)。但是,当我相对较快地单击时,不注释那一行,会导致视频有点滞后(如果我幸运的话),有时根本不会在 Chrome 中呈现。在 Edge 中,视频需要几秒钟才能呈现。删除那条线,无论我点击多快,视频 load/render 都很好。
- 为什么会这样?
cloneNode
真的有那么慢吗? - 这个问题有什么实际的解决办法吗?
问题似乎出在 cloneNode() 上,但事实证明这是因为我使用 mp4 文件作为我的视频源。 mp4 在 Chrome 中已弃用。一旦我转换为 webm 视频文件,lag/rendering 问题就完全消失了。