1

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

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

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

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

video.currentTime始终为0,无论我检查视频的哪个部分。

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

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

4

1 回答 1

0

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

[更新]

因此,IE 9 移动版似乎支持 HTML5 视频 API 的一个非常有限的子集。这个W3 演示对于测试它实际支持的 API 的哪些元素很有用。

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

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

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

于 2012-05-02T23:08:35.233 回答