我在页面中有这个:
<video src="blob://some-live-stream" autoplay></video>
<div id="hideMePlease"> hide 1 sec before video ends</div>
我想在视频结束前1秒隐藏div,我该怎么办?
N.B:我不知道视频时长,它是直播视频,视频自动停止,所以我无法自行阻止它。
答案 0 :(得分:2)
如果你说的那样,你不能知道视频的长度,因为它的流式传输,它将不可能(尽管有相对论的时间旅行),你可以安排一秒钟的事件在它结束之前。
但是,我至少要先尝试来使用视频的持续时间属性,可能是元数据早期作为流的一部分提供。如果是,您可以使用它来安排隐藏div
。
顺便说一句,如果你访问页面http://www.w3.org/2010/05/video/mediaevents.html,你会发现只要你开始播放视频就会正确设置持续时间,尽管事实上它似乎是从MP4,OGG或WEBM文件)。所以它至少可能,虽然它可能取决于数据流本身(元数据是在实际视频数据之前还是之后)。
如果数据不可用(我认为在这种情况下你持续Inf
),那么你只需要隐藏{{1在那之后的最早时间。
这可能是在它结束时(触发div
事件)。
因此,简而言之,如果你能获得持续时间(或定期获得可能更好的剩余时间),请使用它。否则回到最后隐藏它并开始麻烦w3c以在HTML6中提供你想要的功能。