HTML5视频/视频海报结束

Cap*_*Ron 23 video html5

<video controls="controls" poster="http://gifs.gifbin.com/1233925271_8be9acc.gif" style="width:800px;">
Run Code Online (Sandbox Code Playgroud)

有了以上; 在HTML5 <video>标签中,我可以添加一张海报; 一个图像或动画.gif就好了,播放/运行实际视频"播放"之前.

现在,我该如何添加图像; 特别是.gif(动画.gif适用于海报)将在视频播放后运行?

Arn*_*der 27

一种直截了当的方式:

<script>
var video = document.querySelector('video');       
video.addEventListener('ended', function() {
  video.load();     
});
</script>
Run Code Online (Sandbox Code Playgroud)

实际上,当更改视频标记的src时,您隐式地在其上调用load().

此方法需要再次请求媒体URL,并且根据缓存设置,它可能会重新下载全长媒体资源,从而导致客户端不必要的网络/ CPU使用.

解决此问题的更合适的方法是在视频标记的顶部使用叠加图像/ div,并在视频启动时隐藏它.当结束事件触发时,再次显示叠加图像.


Hac*_*ron 8

这是我在视频播放结束后看到海报时最终做的事情:

# Show poster at the end of the video
$('video').on('ended',->
  $('video')[0].autoplay=false
  $('video')[0].load()
)
Run Code Online (Sandbox Code Playgroud)

  • 上面将在 safari 中添加一个 flickr 黑色图像。 (2认同)

EL *_*bov 7

简而言之:您需要的是添加 video.addEventListener('ended',function() {})和触发video.load()在您的自定义 JavaScript 中。

这是播放视频后重定向的相关帖子,您可以相应地对其进行修改 -播放后重定向 html5 视频

查找详细信息的参考资料

  • 你能解释一下“做”部分吗? (19认同)
  • 是的我同意。这并没有真正回答问题。 (3认同)

Log*_*gan 5

尝试这个

var video=$('#video_id').get(0);        
video.play();
video.addEventListener('ended',function(){
    v=video.currentSrc;
    video.src='';
    video.src=v;            
});  
Run Code Online (Sandbox Code Playgroud)