Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何检测视频何时完成播放?_Reactjs - Fatal编程技术网

Reactjs 如何检测视频何时完成播放?

Reactjs 如何检测视频何时完成播放?,reactjs,Reactjs,由于React使用生命周期方法和虚拟dom,我如何检测视频何时播放完毕。我在stackoverflow上发现了另一个类似这样的问题,建议使用componentWillUnmount,但我没有从dom中删除视频,所以componentWillUnmount不会被触发 如何检测视频何时完成播放 使用a获取对的引用。您还可以在视频元素上使用ONENED媒体事件。自2015年以来,该功能已得到支持;它更易于使用,并可用于功能组件 const myCallback = () => (console.

由于React使用生命周期方法和虚拟dom,我如何检测视频何时播放完毕。我在stackoverflow上发现了另一个类似这样的问题,建议使用componentWillUnmount,但我没有从dom中删除视频,所以componentWillUnmount不会被触发


如何检测视频何时完成播放

使用a获取对
的引用。您还可以在视频元素上使用
ONENED
媒体事件。自2015年以来,该功能已得到支持;它更易于使用,并可用于功能组件

const myCallback = () => (console.log('Video has ended'));

<video autoplay onEnded={() => myCallback()}>
    <source src={'https://somerandomvideo.url'} type="video/mp4" />
</video>
constmycallback=()=>(console.log('Video has end');
myCallback()}>
还要确保视频元素上的
loop
不是
true
,因为这样,将永远不会触发onEnded事件。

更多信息请点击此处:

componentDidMount() {
    this.videoElement.addEventListener("ended", myCallback);
}
componentWillUnmount() {
    this.videoElement.removeEventListener("ended", myCallback);
}
const myCallback = () => (console.log('Video has ended'));

<video autoplay onEnded={() => myCallback()}>
    <source src={'https://somerandomvideo.url'} type="video/mp4" />
</video>