我坚持使用HTML5的视频标签作为其部分视频内容的传送方式 . 我目前已经启动并运行http://videojs.com/的一些帮助来处理Internet Explorer Flash后备 .
他们要求我做的一件事是,在视频完成播放后(它们的长度各不相同),将它们淡出然后淡出图片代替视频 - 将其想象成后面的海报帧该视频 .
这甚至可能吗?你能通过Javascript或其他方法获得当前正在播放的电影的时间码吗?我知道Flowplayer(http://flowplayer.org/demos/scripting/grow.html)有一个onFinish函数,我应该采取的路线代替HTML5视频方法吗? IE用户获得Flash播放器的事实是否需要两个独立的解决方案?
任何投入将不胜感激 . 我目前正在网站上使用jQuery,所以我想尽可能地将解决方案保留在该领域 . 谢谢!
3 回答
有一个与视频标记关联的OnEnded事件 . 但是,它在当前版本的Google Chrome中对我不起作用 .
HTML 5 Video OnEnded Event not Firing
并且还看到
Detect when an HTML5 video finishes
对于通用解决方案(支持带有后备的视频标签,请参阅)
http://camendesign.com/code/video_for_everybody或http://www.kaltura.org/project/HTML5_Video_Media_JavaScript_Library或http://www.mediafront.org/
You can view a complete list of events in the spec here .
例如:
您可以像jQuery中的任何其他内容一样绑定元素上的事件...至于您的评论问题,您为IE提供的任何元素,是的,它需要一个单独的处理程序,它可以操作它提供的任何事件 .
对于有关时间码的其他问题,
timeupdate
事件在播放时发生,durationchange
事件在整体持续时间发生变化时发生 . 您可以绑定并使用它们就像我在上面的ended
事件中显示的一样 . 使用timeupdate
你可能想要currentTime
属性,使用durationchange
你需要duration
属性,你可以直接从DOM对象中获取每个属性,如下所示:我用过这段代码 . 它基本上重新加载视频,将再次显示海报 . 假设您希望最后的图像与海报相同 . 我在页面上只有一个视频,因此使用视频标签可以正常工作 . 我的视频设置在页面加载时自动播放,所以我在重新加载后添加了暂停 .