我的页面中当前正在播放一个视频,我想在特定视频时间调用settimeout函数。
例如,我想在视频时间的第十秒调用settimeout函数,此时用户可以按自己的意愿暂停视频。基本上我想将settimeout函数的时间与视频时间同步。
<video id="video" autoplay controls>
<source id="mp4" src="https://api.imaginedreality.in/?filename={{video}}"
type="video/mp4">
</video>
<script>
window.onload=start;
function start(){
setTimeout(showdiv,10000)
}
function showdiv(){
document..getElementById('divid').style.display="block"
}
</script>
这是我正在尝试的方法,但是在这里,videotime和setTimeout函数之间没有任何关系,而这正是我想要建立的
答案 0 :(得分:0)
为什么不只听视频中的progress
,play
和seeked
事件,当您获得视频时,看看您是否在十秒以上,如果不是,设置超时以检查适当的秒数?
let timeout;
document.getElementById('video').addEventListener('play', checkVideo);
document.getElementById('video').addEventListener('seeked', checkVideo);
document.getElementById('video').addEventListener('progress', checkVideo);
function checkVideo(e) {
if (e.timeStamp > 10000) {
document.getElementById('divid').style.display="block";
} else {
clearTimeout(timeout);
timeout = setTimeout(() => {
if (e.target.currentTime >= 9.9) {
document.getElementById('divid').style.display="block";
}
}, 10000 - (e.target.currentTime * 1000));
}
}
#divid {
display: none;
}
<div id="divid">Test</div>
<video id="video" autoplay controls>
<source id="mp4" src="https://www.html5rocks.com/en/tutorials/video/basics/devstories.mp4"
type="video/mp4">
</video>
<script>
</script>