JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 如何为YouTube Player API iframe嵌入高质量的缩略图?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
缩略图看起来不错一年多,但突然变得模糊.
在页面加载中显示的缩略图看起来是正确的,但是当使用“player.cueVideoById”显示新的缩略图时,它看起来很模糊.

在文档中没有提到如何控制缩略图的质量(只有视频质量设置,如“setPlayBACkQuality”可用).文件:https://developers.google.com/youtube/iframe_api_reference

如何强制高质量的缩略图?

解决方法

是的,这个问题很容易重现.我创建了一个 slightly modified version of the documentation example,它加载一个视频,并在一秒钟后调用setPlayBACkQuality.质量明显下降.其实原来的缩略图是https://i.ytimg.com/vi/M7lc1UVf-VE/sddefault.jpg,它正在被https://i1.ytimg.com/vi/M7lc1UVf-VE/default取代. JPG.

然Flash播放器是非常不透明的,对于HTML5播放器,我们可以看看(漂亮的模糊)source code.这段代码特别有趣(重新格式化为可读性):

var c;
if (!a.j)
{
  var d = a.element.clientWidth,e=a.element.clientHeight;
  if (900 < d || 600 < E)
    c = Av(b,"maxresdefault.jpg");
  !c && (430 < d||320 < E) && (c = Av(b,"sddefault.jpg"))
}
c || (c = Av(b,"default.jpg"));

这表示您确实不应该控制缩略图的质量,而是根据视口大小进行设置.如果宽度超过900或高度超过600,您可以获得maxresdefault.jpg,如果宽度超过430或高度超过320,您将获得sddefault.jpg,在所有剩余的情况下,您将获得default.jpg.这样做的确是 – 初始负载.这似乎是预期的行为.

但是,这不是你得到的player.cueVideoById() – 它总是default.jpg,大概是因为a.j设置(无论如何).编辑:实际上,调试代码已经表明a.j并不是这里的罪魁祸首.相反,由于数据结构(特别是b.La映射)未被完全初始化,所以Av函数在调用“default.jpg”以外的任何值时都返回未定义.对我来说,这只是一个bug,似乎已经是reported to Google了.

作为参,功能的源代码Av:

function Av(a,b)
{
  if (30 == a.o)
  {
    // This branch isn't being entered
    var c = a.La["default.jpg"];
    return c?c:a.videoId?de("//docs.google.com/vt",{id:a.videoId,authuser:a.Wa,authkey:a.Kb}):"//docs.google.com/images/doclist/cleardot.gif"
  }
  b || (b="hqdefault.jpg");
  return (c = a.La[b]) || "sddefault.jpg" == b || "maxresdefault.jpg" == b ?
    c :
    Mt(a.videoId,b)
}
@H_868_3@mt(a.videoId,b)将返回正确的URL,但函数返回c而不是未定义.

请注意,以上文字仅适用于HTML5播放器. Flash播放器的行为略有不同,同样不一致.

大佬总结

以上是大佬教程为你收集整理的javascript – 如何为YouTube Player API iframe嵌入高质量的缩略图?全部内容,希望文章能够帮你解决javascript – 如何为YouTube Player API iframe嵌入高质量的缩略图?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。