HTML5 视频 - 文件加载完成事件?
我需要检测视频文件何时完成加载。我想我应该使用进度->缓冲区,但在我的脑海里,我记得读到这是不可靠的。有没有更好的方法,或者这样安全吗?
请注意,我将保留每个用户已完全下载的视频的本地存储缓存,因此我会提前知道视频是否已加载,并且如果这是一个症结所在,则可能会绕过进度->缓冲区。
提前致谢。
I need to detect when a video file has completed loading. I'm thinking I should use progress->buffer, but in the back of my mind, I remember reading that this was unreliable. Is there a better way, or is this safe?
Note, I will be keeping a localStorage cache of videos that have been completely downloaded by each user, so I'll know in advance if a video has already loaded, and could probably bypass progress->buffer if that's a sticking point.
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以绑定“缓冲”事件,但是(至少在 Chrome 中)这工作正常,只是它不会调用最后一个“缓冲”事件(即它将检测 90%...94%...98%。 ..但不会100%打电话)。
注意:最新版本的 jQuery 应该使用 .prop() 而不是 .attr()
为了解决这个问题,我使用 setInterval() 每 500 毫秒检查一次缓冲区(其中 $html5Video 是您的
元素:
You can bind the "buffered" event, but (in Chrome at least) this works fine except that it doesn't call the last "buffered" event (i.e. it will detect 90%...94%...98%... but won't call on 100%).
Note: recent versions of jQuery should use .prop() instead of .attr()
To get around this I've used setInterval() to check the buffer every 500ms (where $html5Video is your
<video>
element:我遇到了同样的问题,并使用附加到进度事件的计时器。这是一个黑客,但我还没有看到任何其他方法可以做到这一点。 (我已经在 Chome 10 - Windows 上对此进行了测试)。
这看起来像是您正在考虑采取的方法类型,但我想我会为那些可能正在寻找快速代码示例的匿名用户发布一个示例 =p
国杰
I've had the same problem and use a timer attached to the progress event. It's a hack but I haven't seen any other ways of doing this. (I've tested this on Chome 10 - Windows).
This looks like the type of approach you were thinking of taking, but figured I would post an example for those anonymous users who might be looking for a quick code sample =p
GJ
这是使用 Google 的 MDC 的充实实现-Web 的 mdc-linear-progress UI 组件。
Here's a fleshed out implementation with Google's MDC-Web's mdc-linear-progress UI component.