2016-10-19 13 views
0

私は自分のコードで "flash out of date"エラーを検出しようとしています。プレーヤーオブジェクトは存在しますが、コールバックは呼び出されません。YouTube iFrame API:準備ができていません。エラーはありません。

var player = new YT.Player('pp-yt-player-div-id', 
    { 
     height: '50', 
     width: '50', 
     playerVars: 
     { 
      controls: 0, 
      showinfo: 0, 
      rel: 0 
     }, 
     events: 
     { 
      onReady: function(event) 
      { 
       this.onReady(); 
      }.bind(this), 
      onStateChange: function(event) 
      { 
       this.onStateChange(event); 
      }.bind(this), 
      onError: function(event) 
      { 
       console.log('on error: '+event); 
       this.onError(event); 
      }.bind(this) 
     } 
    }); 

このシナリオでエラーを検出する良い方法はありますか?

+0

_「このシナリオでは、 『時代遅れのフラッシュ』のエラーを検出するための良い方法はありますか?」_いいえコードが任意のFlashコンテンツを含むされていないだから。あなたがHTMLコードに** .swf **ファイルが埋め込まれていない場合は、Flashを使用していません... Youtubeは、ビデオタグ、JS、CSSのPHPを使用します。 –

+0

すべてのyoutubeの動画は、 「フラッシュが古くなった」実際にエラーが発生した場合でも、YouTubeのiframe APIでは検出できません。 – jpro

+0

テキストは選択可能ですか?はいの場合は、iframeで「Flash out of date」の文字列検索を行うだけですか?どのブラウザを使用しましたか?どのテストリンク?私はChromeブラウザに住んでいるので、このような問題は見えません。 –

答えて

2

間違いはありますが、間違いがあるにもかかわらずエラーは表示されません。私が決定できる唯一の解決策は明らかに厄介なタイムアウトハックです。

var readyError = false; 
var waitTimer = setTimeout(function() 
{ 
    readyError = true; 
    throw new Error('YouTube player not initializing. Possible Flash out of date error.'); 
}, 10000); 

var ytPlayer = new YT.Player('youtube-player-id', { 
    events: { 
    onReady: function(e) { 
     clearTimeout(waitTimer); 
    }, 
    onStateChange: function(e) { 
     ... 
    }, 
    onError: function(e) { 
     ... 
    } 
    } }); 
関連する問題