2

我在这里为此创建了一个 JS 小提琴:

http://jsfiddle.net/lindseymysse/6C65Y/1/

错误:

从昨天晚上开始,我正在处理的网站上的一些视频停止为用户加载。我们正在使用 iframe 嵌入,并尝试使用 html5 做尽可能多的事情。

要重现此错误:

如果用户是

  1. 未注册/尚未决定打开 html5 视频或

  2. 用户已开启 html5 试用,视频将无法在 MacBook Chrome、Firefox 或 Safari 上播放。

如果用户打开然后关闭 html5 试用版,或者(如果他们已经注册了 html5 试用版)只是关闭,嵌入将起作用

一些线索:

来自损坏视频的调试如下所示:

  • 调试播放质量=小
  • 斯科维尔=1
  • cfps=0
  • pd=0
  • MOS=0
  • 调试 flashVersion=MAC 11%2C2%2C202%2C235
  • fs=0
  • hl=en 美国
  • 调试日期 = 2012 年 5 月 10 日星期四 14%3A40%3A14 GMT%2D0700
  • iframe=1
  • 乳酸=空
  • 视频帧率=0
  • vq=自动
  • h=355
  • 阶段FPS=24
  • 调试错误=未指定
  • tpmt=0
  • 成帧器=http%253A%252F%252Ffiddle%2Ejshell%2Enet%252FunPrz%252F5%252Fshow%252F
  • 体积=100
  • 丢弃帧=0
  • w=473
  • el=详情页
  • 屏幕=1440
  • 屏幕 = 900
  • 调试 videoId=
  • 玩家w=640
  • 调试源数据=

多一点:

  • Mozilla 给出错误:-- Unexpected value align parsing preserveAspectRatio 属性。
  • 我们发现这个嵌入被破坏的视频是即使在 html5 试用版中也可以作为 Flash 视频播放的视频。

请查看我的 jsFiddle 以重现该错误。

这是什么原因造成的?此错误不会在 youtube api onError 调用中引发错误,有没有办法发现它以便我们处理这个问题?

4

1 回答 1

2

YouTube 确实在过去几天更改了他们的 API,并且他们的 HTML5 视频播放器的 flash 回退失败了。其他用户报告一个黑色或空白的 YouTube 播放器屏幕和 0:00 的视频持续时间,这是该错误的其他症状,一旦出现 SWF 播放器。

我用一种解决方法更新了您的 jsfiddle.net,以仅从最初开始使用 flash 播放器,这样可以防止 flash 问题的回退,直到它得到解决。

它保留您的 /embed/ 方案,因此使用的任何自定义 API 仍然有效。

变通方法是添加没有其他视频值和逗号的播放列表参数,通常用于分隔播放列表中的视频,从而实现播放列表为 1

当然,如果您已经在使用播放列表,那么您将不会受到此错误的影响,因为播放列表是目前唯一强制 Flash 播放器在 /embed/ URL 中正确呈现的 Flash 专有项目。

这是更新:

http://jsfiddle.net/6C65Y/3/

状态报告:这个 YouTube API 错误不再是问题。

于 2012-05-12T03:20:34.310 回答