【发布时间】:2020-10-24 16:43:33
【问题描述】:
我正在 React 中构建一个视频播放器,并试图跟踪视频是否正在播放。自然,我正在考虑使用 React 状态将布尔值设置为 true 或 false。
问题是每当我播放视频并尝试更新状态时,我的视频似乎被重新加载到 DOM 并且播放/暂停状态丢失了。
const refVideo = useRef();
const [isPlaying, setIsPlaying] = useState(false);
function playVideo() {
if(refVideo && refVideo.current) {
if(refVideo.current.paused) {
setIsPlaying(true);
refVideo.current.requestFullscreen();
refVideo.current.play();
} else {
setIsPlaying(false);
refVideo.current.pause();
}
}
return false;
}
return (
<section>
<video src="video.mp4" ref={refVideo}></video>
<Button onClick={(e) => playVideo(e)} text="Play / Pause />
</section>
);
我的Button 组件处理playVideo() 功能,但setIsPlaying(true) 似乎重新渲染视频,阻止它播放。有更好的方法吗?
【问题讨论】:
标签: reactjs video html5-video state