我有这个页面:
<video src="blob://some-live-stream" autoplay></video>
<div id="hideMePlease"> hide 1 sec before video ends</div>
我想在视频结束前1秒隐藏div,我该怎么做?
N。B:我不知道视频时长,这是直播,视频会自动停止,所以我没办法自己停止。
如果,正如你所说,你无法知道视频的长度,因为它是流媒体的,那么(尽管有相对论时间旅行)你将不可能在它结束前一秒安排一个事件。
然而,我至少会首先尝试使用视频的持续时间属性,这可能是元数据在早期作为流的一部分可用。如果是,您可以使用它来安排隐藏您的div
。
作为题外话,如果你访问http://www.w3.org/2010/05/video/mediaevents.html页面,你会发现持续时间设置正确,只要你开始播放视频,尽管事实上它似乎是从MP4, OGG或WEBM文件流)。所以这至少是可能的,尽管它可能取决于数据流本身(元数据是在实际视频数据之前还是之后)。
如果数据不可用(我认为在这种情况下您将获得持续时间的Inf
),那么您将不得不在那之后尽早隐藏div
。
这可能是当它完成时(触发onended
事件)。