Эскиз YouTube API не меняется при смене видео (js) - PullRequest
0 голосов
/ 24 августа 2018

Я не уверен, куда мне звонить, чтобы получить миниатюру. Прямо сейчас я назвал это внутри:

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 (событие) :

// 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, на самом деле он только пробует первый, если видео не соответствует в этом разрешении цепочка «если» не идет вниз, поэтому просто ничего не показывает.

...