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) {
...
}
} } );
我正在尝试检测代码中的 "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) {
...
}
} } );