javascript - 防止 HTML 5 `video` 在 src 更改时闪烁海报图像

标签 javascript html reactjs html5-video

在 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}
>

我正在尝试找到一种方法来等待新视频加载,然后再停止旧视频,这样我就可以摆脱视频之间海报图像的快速闪烁。有办法吗?

最佳答案

您应该使用组件的 setState() 方法来实现这一点。您的视频源看起来像 src=state.videoSrc 而您的按钮处理程序将像这样:

myButtonHandler(videoSrc) {
  this.setState({
    videoSrc
  })
}

videoSrc 将是代表 url 的静态字符串。

https://reactjs.org/docs/state-and-lifecycle.html

关于javascript - 防止 HTML 5 `video` 在 src 更改时闪烁海报图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53907942/

相关文章:

javascript - 如何在两个垂直部分显示“li”(像报纸一样并排)

javascript - 使用向下滚动代码时出现 'Cannot read property scrollIntoView of null' 错误

javascript - 加载完所有元素(由ajax调用)后如何调用函数?

html - 2 个导航栏 - 一个导航栏上有品牌

javascript - 使用 React useState() Hook 更新和合并状态对象

javascript - 在对象数组中查找整个对象

python - 如何读取jquery中的csv标题列/将列表从python填充到jquery

reactjs - 无法读取 null 的属性(读取 'useContext' )

javascript - Javascript 中带父级和不带父级的 json 上的 .map 方法

javascript - 调用方法在 JavaScript 中不起作用