youtube api缩略图在视频更改(js)不变

时间:2018-08-24 18:18:40

标签: api youtube thumbnails

我不确定应该在哪里称呼“获取缩略图”。 现在我在里面叫它:

var done = false;
function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
        timestamp_callback();
    }
    switch(event.data) {
        case YT.PlayerState.PLAYING:

        // get video title
        // get video date
        // get video thumbnail

“正在播放”部分,因为我也解析了视频标题和其中的其他信息并且可以正常工作,所以在更改视频时它也会更改,但是缩略图仅会更改某些视频。

无论如何,这是我在上面的 onPlayerStateChange(event)中使用的功能:

// get video thumbnail
            $.get("https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + curvideID + "&key=" + ytApiKey, function(data) {
              var snip = data.items[0].snippet.thumbnails;
              quality = snip.maxres.url;
              if (quality) {
                bgThumb.src = quality;
                bgThumb.style.setProperty("display", "block");
              }else{
                quality = snip.standard.url;
                if (quality) {
                  bgThumb.src = quality;
                  bgThumb.style.setProperty("display", "block");
                }else{
                  quality = snip.high.url;
                  if (quality) {
                    bgThumb.src = quality;
                    bgThumb.style.setProperty("display", "block");
                  }else{
                    quality = snip.medium.url;
                    if (quality) {
                      bgThumb.src = quality;
                      bgThumb.style.setProperty("display", "block");
                    }else{
                      quality = snip.default.url;
                      if (quality) {
                        bgThumb.src = quality;
                        bgThumb.style.setProperty("display", "block");
                      }else{
                      bgThumb.style.setProperty("display", "none");
                    }
                  }
                }
              }
            }
            });

请不要介意可疑的序列,我敢肯定有较短的方法可以做到这一点,但这就是我想方设法检查视频播放的最大分辨率的方法(除非这是我的原因)失败)。

更新:我发现该函数的调用在正确的位置,if链存在问题,实际上,如果视频没有,则仅尝试第一个与该分辨率匹配,“ if链”不会下降,因此根本不显示任何内容。

0 个答案:

没有答案