YouTube iFrame API:没有准备好调用,没有错误调用

YouTube iFrame API: no ready call, no error call

我正在尝试检测代码中的 "flash out of date" 错误。播放器对象存在但没有回调被调用。

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 )
        }
    } ); 

在这种情况下有没有好的检测错误的方法?

我不明白为什么,但是即使肯定有错误也没有调用错误。我可以确定的唯一解决方案是超时破解,这显然很讨厌。

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) {
      ... 
    } 
  } } );