1

问题是间歇性的,但 video.js 无法加载和播放已在 Chrome for OS X 中缓存的 mp4。这是我目前所知道的:

  • 禁用缓存(在 DevTools 打开时)允许视频在重新加载时播放 100% 的时间
  • 如果未禁用缓存,并且手动清除缓存,问题仍然存在
  • 关闭并重新启动 Chrome 将解决问题,直到下一个页面刷新
  • 将 ?nocache=20131028-084318 附加到源 url 并不能解决问题。
  • 使用 Charles Proxy 观看 HTTP 请求,我看到在成功运行时,一个 HTTP 请求会发送到 Brightcove(我的视频主机)。刷新失败时,请求永远不会发生。
  • 成功运行 VideoJS 事件序列:
    • 加载启动
    • 持续时间变化
    • 加载元数据
    • 加载数据
  • 打开失败:
    • 加载启动
  • 我尝试了多种设置视频元素的方法,包括这里提到的一种,iOS 上文件加载期间的 Video.js Stalling ,甚至是这里提到的最基本的设置,https://github.com/videojs/video。 js/blob/master/docs/setup.md 后者似乎效果更好;但是,一旦浏览器进入错误状态,就需要清除缓存并重新启动浏览器。
4

4 回答 4

0

我遇到了同样的问题,但在 Chrome for Windows 中。我首先注意到它只会在开发工具打开时加载,然后我看到你的问题并意识到开发工具正在绕过缓存。

于 2013-12-05T20:53:42.673 回答
0

我不确定这是否特定于 video.js。我可以通过设置一个普通的 html5 视频标签来重现这个问题。它肯定看起来与一些缓存问题有关。

目前,我可以通过将 guid 作为查询参数附加到视频 url 来规避这个问题,以确保 Chrome 认为这是一个新的视频请求。我确实认为那里存在需要解决的 Chrome 错误。

我刚刚找到了一张与我可以复制的票相匹配的票: https ://code.google.com/p/chromium/issues/detail?id=234779

于 2014-01-27T18:32:53.633 回答
0

如果用户访问该页面(在某些浏览器上,例如:Safari 6.1 等),视频将第一次播放。如果用户通过单击地址栏并按“ENTER”键重新加载页面,则视频不会触发“重新加载”页面上的 LOADED/READY(或任何其他)事件。如果用户使用 REFRESH 按钮或 REFRESH 键组合(通常)刷新页面,则不会发生此行为。

我通过在页面上动态加载播放器绕过了我的 Brightcove 播放器问题,因此它不能被缓存。

我还缓存了 Brightcove JS 文件以备不时之需。

使用此代码动态加载播放器:http: //support.brightcove.com/en/video-cloud/docs/dynamically-loading-player-using-javascript

只是一些自以为是的建议。尽可能远离 Brightcove。我和我的同龄人在他们的播放器中遇到了很多错误,并且文档极差。

于 2013-12-20T21:13:49.393 回答
0

我遇到了这个问题,我通过禁用包含 videojs 实例选项的 javaScript 文件的缓存来解决它。

将此行添加到您的主页的头部

<script>document.write('<script src="vid.js?dev=' + Math.floor(Math.random() * 100) + '"\><\/script>');</script>

注意:vid.js 是我将设置放入的文件..

我没有尝试的另一个解决方案,但我认为它可能有效,是通过在 jQuery 中添加设置的 JavaScript(就绪函数)。

于 2021-12-27T20:35:06.570 回答