【发布时间】:2019-05-23 07:01:52
【问题描述】:
在 React 中,我使用 video 元素根据用户单击的按钮动态加载静态视频文件,并且每次视频更改时都会短暂显示海报图像。这是我的视频播放器标记的样子:
<video
id="video-player"
controls
controlsList="nodownload"
autoPlay={props.autoplay}
src={props.video}
onMouseOver={(e) => e.target.controls = true}
onMouseOut={(e) => e.target.controls = false}
poster={poster}
>
我正在尝试找到一种方法来等待新视频加载,然后再停止旧视频,这样我就可以摆脱视频之间海报图像的快速闪烁。有没有办法做到这一点?
【问题讨论】:
-
您可以尝试使用promise 加载一个新的视频元素,然后在它解析时替换该视频元素。
-
我会在承诺中加载什么?视频反应/DOM 元素?我怎么知道它已经完成加载?
-
您可以加载一个新的视频元素,并且承诺只有在完成加载元素后才会解析。或者,您可以使用
onLoad事件来检测视频何时完成加载。
标签: javascript html reactjs html5-video