当我更改时间位置时 Facebook 视频冻结

Bra*_*roy 4 video browser freeze facebook windows-10

我对 Facebook 的视频有一个奇怪的问题。我可以很好地开始视频,但是如果我从 0.10 跳到 0.30,视频会冻结:它不会继续播放。我在 YouTube 等其他视频平台上没有遇到过这个问题,我的

我在谷歌上搜索了这个问题,但只发现了轻微相关的问题。我尝试了以下方法:

  • 试过其他浏览器,都出现这个问题。(Chrome、Edge、Firefox。)
  • 禁用浏览器的所有插件
  • 禁用浏览器的硬件加速
  • 重新安装浏览器
  • 重新安装操作系统(Windows 10 专业版,64 位):全新安装,无需升级

正如你所看到的,我对此非常恼火,甚至我格式化了我的完整设置,甚至没有工作。因为它是跨浏览器的,所以我想知道是 Windows 问题,Windows 更新问题,还是 Facebook 问题。我还没有找到任何人有完全相同的问题,所以我迷路了。有什么帮助吗?

更新:截至 2017 年 6 月 25 日,这个问题对我来说已经消失了。

Mar*_* P. 5

经过几个小时的调试,我找到了罪魁祸首。看来这确实是 facebook 的部分推出/AB 测试。

更准确地说,它是来自VideoPlayerExperiments 的一个名为disableDuplicatePlayingRequest的标志,它被加载到您的个人资料的页面源中。将其设置为需要您在更改时间之前暂停视频,否则视频将冻结/挂起。true

现在至于解决方案,没有简单的解决方案。它似乎用于闭包,因此没有简单的方法可以更改它。至少从我看到/测试的情况来看。

我能够绕过它的唯一方法是替换https://www.facebook.com/rsrc.php/v3iTQQ4/yd/l/fb_LT/JTeC8QI2Wlf.js后来的编辑:脚本名称/位置经常更改,我已经添加了一个教程来找到正确的)来自 facebook 的脚本并在帮助下加载脚本的自定义版本绕过文件检查的扩展名:if (c('VideoPlayerExperiments').disableDuplicatePlayingRequest && this.isState('playing')) return;

如果有人对扩展感兴趣,它被称为Resource Override,但它不是那么直接使用。您需要一个服务器来托管修改后的 js 文件和一些 Header 规则来绕过 CORS 和 CSP。

PS我在这里创建了一个社区问题,以便从 Facebook 获得一些答案。任何人都可以通过投票(或在移动设备上喜欢)这个问题来提供帮助。

PS2:好的,要真正解决此问题,您需要使用 Chrome 并按照以下步骤操作:

  1. 去FB并登录。在所有 js 源中搜索标记disableDuplicatePlayingRequest。如果你不知道怎么做,你可以使用这个教程

  2. 找到包含它的文件后,使用{}按钮 (Pretty Print),然后将文件中的全部内容复制到文本编辑器。转到具有类似内容的行if (c('VideoPlayerExperiments').disableDuplicatePlayingRequest && this.isState('playing')) return;并删除或评论它。您现在需要保存此文件并将其上传到服务器。我不能分享我的文件,因为 FB 可能认为它违反了条款,所以你必须自己做。记住文件的公共访问 URL。

  3. 从 Chrome 商店安装资源覆盖扩展

  4. 打开扩展程序的选项。在标签 URL 中输入*facebook.com*

  5. 添加更改标题规则。在For:输入https://www.facebook.com*. 现在进入Edit headers. 我们将只使用响应头,所以请确保只使用第二部分。为Content-Security-Policy和添加 2 组标题规则X-Content-Security-Policy。现在我们需要将您的服务器添加到 FB 使用的现有策略中。为此,请返回 Facebook 页面并进入 Dev Console > Network 选项卡。选择 .js 文件请求之一。在响应标头中,您将看到content-security-policy. 将整个内容复制:到文本编辑器中。它应该以default-src.... 现在找到blob:;script-src并在它之后添加用于托管 js 文件的域。例如xyz.com*.xyz.com(如果您使用子域)。请务必在其前后留有空格,以免影响现有的策略字符串。现在使用这个新行,并将其放入扩展中设置的标头字段中的 2 个值字段中。它们应该是相同的。现在我们需要一个更多的设置标题规则Access-Control-Allow-Origin,其值为*。单击关闭返回主菜单。

  6. 再添加一项更改标题规则。这次我们将它用于您的域,以确保您在那里也有正确的标头。在该For:字段中输入可在网络上访问您修改后的文件的确切链接。首选https。使用 http 或本地文件可能会导致问题。现在进入规则的更改标题部分。我们也将在这里使用响应部分。在预设中确保选择该Allow outside content选项,以便让它自动为您添加 2 条规则。在这 2 个之后,我们还需要一个Access-Control-Allow-Origin值为 的设置标头规则https://www.facebook.com。不要单击关闭并返回主菜单。

  7. 最后一步是用修改后的文件实际替换 FB js 文件。为此,请为 URL -> URL 添加规则。在From:步骤 (1) 中添加文件。额外注意的是,此链接会定期更改,因为 facebook 往往每 1-3 天更新一次。当您注意到视频将再次开始冻结时,您也需要更改它。您可以按照步骤 (1) 获取它的新链接。现在,To:您需要在字段中放置指向修改后文件的链接。最后一件事是检查所有这 3 个规则是否都设置为ON. 就是这样,视频应该可以像以前一样重新工作。

PS3:你可以在这里找到保存的扩展规则。您需要将xyz.cohttps://xyz.co/modified.js名称替换为您自己的名称。它们各出现 2 次。之后,请确保包含 的文件链接disableDuplicatePlayingRequest正确。