如何检查 HTML5 视频是不是在 Windows Phone 7 上结束?

Posted

技术标签:

【中文标题】如何检查 HTML5 视频是不是在 Windows Phone 7 上结束?【英文标题】:How to check if a HTML5 video has ended on Windows Phone 7?如何检查 HTML5 视频是否在 Windows Phone 7 上结束? 【发布时间】:2012-05-02 15:21:53 【问题描述】:

我注意到,当 html5 视频结束时,Windows Phone 7 的默认浏览器不会触发“结束”事件。

所以我想我可以每 100 毫秒不断检查当前时间,然后计算:

if (videolength - video.currentTime <= 0) alert("ended");

这也不起作用,因为 Windows Phone 7 的本机浏览器总是这样:"170 - 0"

video.currentTime总是 0,无论我在视频的哪个部分查看。

那么我如何在 Windows Phone 7 上检查视频是否已结束?

更新:我刚刚检查了浏览器的用户代理,它显示的是 ie9。那么,为什么它不想触发“结束”事件呢?

【问题讨论】:

【参考方案1】:

如果您尝试使用 addEventListener 或通过 jQuery 绑定来侦听事件,则需要使用事件类型“end”而不是元素事件处理程序的名称“onended”。

[更新]

看来 IE 9 移动版支持 HTML5 视频 API 的一个非常有限的子集。这个W3 demo 对于测试它实际支持的 API 元素很有用。

根据您的要求,从问题中并不完全清楚,在我看来,您的选择非常有限。你可以:

    使用浏览器的本机播放器,接受无法检测到视频结尾的事实,并等待 Microsoft 齐心协力为您需要的 API 部分添加支持。 使用 Flash 解决方案作为备用解决方案(如果您计划支持旧版浏览器,则无论如何都需要一个)并鼓励数量虽少但确实在增长的 IE 9 移动用户安装metro browser。它得到了褒贬不一的评价,并且不完全清楚它是否支持列出的以外的 Flash 视频播放器,但确实声称支持 YouTube。至少值得考虑一下。 希望 Google 更新 Chrome frame 以在 Windows 7 手机上运行。我不知道这种可能性有多大,但是用谷歌框架填充 IE 9 的想法让我很开心,到目前为止,这个答案的笑点很低。

哦,还有微软,如果您要效仿 Apple 的做法并在您的移动设备上放弃对 Flash 的支持,至少要确保您的浏览器支持大量有用的 HTML5 视频 API。

【讨论】:

嗨,我已经试过了。不工作。似乎 IE7 是 WP7 上的默认浏览器,它不会触发“结束”事件:-( 我需要纠正自己。刚刚检查了那部手机上的用户代理,它告诉我浏览器是 ie9。很奇怪。为什么它不触发“结束”事件? IE 7 根本不支持 HTML5 视频。您的实现是否适用于桌面上的 IE 9?如果没有,您可能会在控制台中看到一个错误,指出您正确的方向。 好主意。我检查了 ie9 的桌面版本,并且在控制台中正确调用了“结束”事件,没有任何错误。 WP7 的 ie9 似乎根本不会触发该事件。 尝试在手机上运行以下 w3 html5 视频测试页面,看看是否得到相同的结果。这样您就可以排除您自己的代码是问题的原因。 w3.org/2010/05/video/mediaevents.html。另请参阅 *** 上其他地方的求助:***.com/questions/9608620/…

以上是关于如何检查 HTML5 视频是不是在 Windows Phone 7 上结束?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查浏览器是不是支持 HTML5?

如何检查用户在 html5 视频播放器中观看了完整视频

如何检查多个 HTML5 视频的音频

如何同步 HTML5 视频?

Window 上 Safari 的最佳 HTML5 视频格式(或让 VP8 在 Windows 上的 Safari 中播放)

HTML5视频,如何检测没有音轨?