Skip to content

Commit

Permalink
switch to flash fallback, if native player has problems
Browse files Browse the repository at this point in the history
  • Loading branch information
aFarkas committed Aug 27, 2012
1 parent dbfa301 commit 243fc67
Show file tree
Hide file tree
Showing 33 changed files with 1,182 additions and 1,050 deletions.
44 changes: 25 additions & 19 deletions demos/js-webshim/dev/shims/combos/10.js
Expand Up @@ -1689,6 +1689,14 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var supportsLoop = false;
var options = webshims.cfg.mediaelement;
var bugs = webshims.bugs;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!webshims.mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};
var hasSwf;
if(hasNative){
var videoElem = document.createElement('video');
Expand All @@ -1712,17 +1720,22 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var switchOptions = function(e){
var parent = e.target.parentNode;
if(!options.preferFlash && ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) ){
webshims.ready('mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
webshims.ready('DOM mediaelement', function(){
if(hasSwf){
loadSwf();
}
webshims.ready('WINDOWLOAD mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
});
});
}
};
Expand Down Expand Up @@ -1835,14 +1848,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u


var hasYt = !hasSwf && ('postMessage' in window) && hasNative;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};

var loadYt = (function(){
var loaded;
return function(){
Expand Down
44 changes: 25 additions & 19 deletions demos/js-webshim/dev/shims/combos/12.js
Expand Up @@ -887,6 +887,14 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var supportsLoop = false;
var options = webshims.cfg.mediaelement;
var bugs = webshims.bugs;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!webshims.mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};
var hasSwf;
if(hasNative){
var videoElem = document.createElement('video');
Expand All @@ -910,17 +918,22 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var switchOptions = function(e){
var parent = e.target.parentNode;
if(!options.preferFlash && ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) ){
webshims.ready('mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
webshims.ready('DOM mediaelement', function(){
if(hasSwf){
loadSwf();
}
webshims.ready('WINDOWLOAD mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
});
});
}
};
Expand Down Expand Up @@ -1033,14 +1046,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u


var hasYt = !hasSwf && ('postMessage' in window) && hasNative;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};

var loadYt = (function(){
var loaded;
return function(){
Expand Down
44 changes: 25 additions & 19 deletions demos/js-webshim/dev/shims/combos/16.js
Expand Up @@ -887,6 +887,14 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var supportsLoop = false;
var options = webshims.cfg.mediaelement;
var bugs = webshims.bugs;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!webshims.mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};
var hasSwf;
if(hasNative){
var videoElem = document.createElement('video');
Expand All @@ -910,17 +918,22 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var switchOptions = function(e){
var parent = e.target.parentNode;
if(!options.preferFlash && ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) ){
webshims.ready('mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
webshims.ready('DOM mediaelement', function(){
if(hasSwf){
loadSwf();
}
webshims.ready('WINDOWLOAD mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
});
});
}
};
Expand Down Expand Up @@ -1033,14 +1046,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u


var hasYt = !hasSwf && ('postMessage' in window) && hasNative;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};

var loadYt = (function(){
var loaded;
return function(){
Expand Down
44 changes: 25 additions & 19 deletions demos/js-webshim/dev/shims/combos/17.js
Expand Up @@ -887,6 +887,14 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var supportsLoop = false;
var options = webshims.cfg.mediaelement;
var bugs = webshims.bugs;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!webshims.mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};
var hasSwf;
if(hasNative){
var videoElem = document.createElement('video');
Expand All @@ -910,17 +918,22 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
var switchOptions = function(e){
var parent = e.target.parentNode;
if(!options.preferFlash && ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) ){
webshims.ready('mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
webshims.ready('DOM mediaelement', function(){
if(hasSwf){
loadSwf();
}
webshims.ready('WINDOWLOAD mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
});
});
}
};
Expand Down Expand Up @@ -1033,14 +1046,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u


var hasYt = !hasSwf && ('postMessage' in window) && hasNative;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};

var loadYt = (function(){
var loaded;
return function(){
Expand Down
44 changes: 25 additions & 19 deletions demos/js-webshim/dev/shims/combos/20.js
Expand Up @@ -4,6 +4,14 @@
var supportsLoop = false;
var options = webshims.cfg.mediaelement;
var bugs = webshims.bugs;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!webshims.mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};
var hasSwf;
if(hasNative){
var videoElem = document.createElement('video');
Expand All @@ -27,17 +35,22 @@
var switchOptions = function(e){
var parent = e.target.parentNode;
if(!options.preferFlash && ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) ){
webshims.ready('mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
webshims.ready('DOM mediaelement', function(){
if(hasSwf){
loadSwf();
}
webshims.ready('WINDOWLOAD mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
});
});
}
};
Expand Down Expand Up @@ -150,14 +163,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u


var hasYt = !hasSwf && ('postMessage' in window) && hasNative;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};

var loadYt = (function(){
var loaded;
return function(){
Expand Down
44 changes: 25 additions & 19 deletions demos/js-webshim/dev/shims/combos/22.js
Expand Up @@ -806,6 +806,14 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
var supportsLoop = false;
var options = webshims.cfg.mediaelement;
var bugs = webshims.bugs;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!webshims.mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};
var hasSwf;
if(hasNative){
var videoElem = document.createElement('video');
Expand All @@ -829,17 +837,22 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
var switchOptions = function(e){
var parent = e.target.parentNode;
if(!options.preferFlash && ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) ){
webshims.ready('mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
webshims.ready('DOM mediaelement', function(){
if(hasSwf){
loadSwf();
}
webshims.ready('WINDOWLOAD mediaelement-swf', function(){
setTimeout(function(){
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
options.preferFlash = true;
document.removeEventListener('error', switchOptions, true);
$('audio, video').mediaLoad();
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
} else if(!hasSwf){
document.removeEventListener('error', switchOptions, true);
}
}, 20);
});
});
}
};
Expand Down Expand Up @@ -952,14 +965,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u


var hasYt = !hasSwf && ('postMessage' in window) && hasNative;
var loadSwf = function(){
webshims.ready('mediaelement-swf', function(){
if(!mediaelement.createSWF){
webshims.modules["mediaelement-swf"].test = $.noop;
webshims.reTest(["mediaelement-swf"], hasNative);
}
});
};

var loadYt = (function(){
var loaded;
return function(){
Expand Down

0 comments on commit 243fc67

Please sign in to comment.