私はかなり長い間、YouTube iframe APIと戦ってきました。どういうわけか、メソッドonYouTubeIframeAPIReadyは常にトリガーされるわけではありません。
症状からして負荷の問題のようです。インスペクタにエラーは表示されません。
これが私のコードです:
HTML
<div id="player"></div>
          <script>
            videoId = 'someVideoId';
            var tag = document.createElement('script');
            tag.src = "//www.youtube.com/iframe_api";
            var firstScriptTag = document.getElementsByTagName('script')[0];
            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
          </script>
JS
(ページの最後で呼び出されます。上記のスクリプトの直後にコードを配置しようとしましたが、結果は同じでした。)
var isReady = false
  , player
  , poster
  , video;
$(function () {
$('.js-play').click(function (e) {
    e.preventDefault();
    interval = setInterval(videoLoaded, 100);
  });
});
function onYouTubeIframeAPIReady() {
  console.log(videoId)
  player = new YT.Player('player', {
    height: '445',
    width: '810',
    videoId: videoId,
    events: {
      'onReady': onPlayerReady//,
      //'onStateChange': onPlayerStateChange
    }
  });
}
function onPlayerReady(event) {
  isReady = true;
  console.log("youtube says play")
}
function videoLoaded (){
  if (isReady) {
      console.log("ready and play")
      poster.hide();
      video.show();
      $('body').trigger('fluidvideos');
      player.playVideo();
      clearInterval(interval);
  } 
}
問題は、 によって何も印刷されconsole.logず、何も起こらない場合があることです。
携帯電話では、これは常に発生します。何か案は?