Internet Explorer 在播放 50 个视频后不播放 html 5 个视频
Internet Explorer not playing html 5 videos after playing 50 videos
我的在线学习课程包含 120 个 1 到 3 分钟的自动播放和预加载视频="auto"。
它打包在 SCORM 1.2 中并托管在 CornerStone 上。
观看 +-40 个视频后,视频无法播放,仅显示黑屏 Internet Explorer 11。
使用 javascript 指示视频播放并没有使其播放。
查看视频就绪状态returns 0.
查看 IE 网络分析显示视频有 206 或 304 错误。
如果我退出课程并重新进入,它会return我回到原来的位置,并且会开始正常播放视频。
这是怎么回事,我该怎么做才能解决这个问题?
编辑:问题似乎是由于 IE h264 编解码器上的一些错误。一个视频可能播放得很好,在第二次观看时它会在激活控件时给出 "Error reading codec" 消息。
这听起来像是内存泄漏或 IE 实现 HTML 5 视频时的其他错误。 206 和 304 代码是转移注意力;两者都不是错误(只要浏览器已经缓存了某些内容,就会发生 304 - 服务器用 304 代码告诉浏览器 "you've already got the latest version" - 加载视频时 206 代码很常见:服务器说 "here's part of the response so you can start playing it, and there will be more") .
如果这确实是内存泄漏(或其他一些特定于 IE 的问题),您的解决方案需要解决它。您可以在每 30 个视频(或某个有意义的数字)后重新加载浏览器 window;如果你这样做,你可以跟踪哪个视频最后在 URL 上播放 - 实际上,无论如何这可能是一件好事(如果用户重新加载页面认为浏览器会 "remember" 他们上一个视频是什么)。
有条件地加载指定视频的页面加载难易程度取决于您的实施。但是您可以跟踪 URL 上的最新视频,例如 #lastVidId=1224
(每当加载新视频时通过设置 location.href
以编程方式更改散列),或者 ?lastVidId=1234
(以编程方式更改 URL,无需使用 pushState()
或 replaceState()
(在您的情况下可能是后者)重新加载页面。
希望这对您有所帮助;我认为这是一个需要解决的问题,而不是正面解决,尤其是因为它涉及到像 IE 这样的旧浏览器。
我的在线学习课程包含 120 个 1 到 3 分钟的自动播放和预加载视频="auto"。
它打包在 SCORM 1.2 中并托管在 CornerStone 上。
观看 +-40 个视频后,视频无法播放,仅显示黑屏 Internet Explorer 11。
使用 javascript 指示视频播放并没有使其播放。
查看视频就绪状态returns 0.
查看 IE 网络分析显示视频有 206 或 304 错误。
如果我退出课程并重新进入,它会return我回到原来的位置,并且会开始正常播放视频。
这是怎么回事,我该怎么做才能解决这个问题?
编辑:问题似乎是由于 IE h264 编解码器上的一些错误。一个视频可能播放得很好,在第二次观看时它会在激活控件时给出 "Error reading codec" 消息。
这听起来像是内存泄漏或 IE 实现 HTML 5 视频时的其他错误。 206 和 304 代码是转移注意力;两者都不是错误(只要浏览器已经缓存了某些内容,就会发生 304 - 服务器用 304 代码告诉浏览器 "you've already got the latest version" - 加载视频时 206 代码很常见:服务器说 "here's part of the response so you can start playing it, and there will be more") .
如果这确实是内存泄漏(或其他一些特定于 IE 的问题),您的解决方案需要解决它。您可以在每 30 个视频(或某个有意义的数字)后重新加载浏览器 window;如果你这样做,你可以跟踪哪个视频最后在 URL 上播放 - 实际上,无论如何这可能是一件好事(如果用户重新加载页面认为浏览器会 "remember" 他们上一个视频是什么)。
有条件地加载指定视频的页面加载难易程度取决于您的实施。但是您可以跟踪 URL 上的最新视频,例如 #lastVidId=1224
(每当加载新视频时通过设置 location.href
以编程方式更改散列),或者 ?lastVidId=1234
(以编程方式更改 URL,无需使用 pushState()
或 replaceState()
(在您的情况下可能是后者)重新加载页面。
希望这对您有所帮助;我认为这是一个需要解决的问题,而不是正面解决,尤其是因为它涉及到像 IE 这样的旧浏览器。