webshims-rails 1.10.11 → 1.11.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/webshims-rails/version.rb +2 -2
- data/readme.textile +14 -1
- data/vendor/assets/javascripts/webshims/polyfiller.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +12 -63
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +17 -7
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +10 -59
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -71
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +58 -19
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +58 -19
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +47 -3
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +324 -79
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +63 -21
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +5 -6
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +47 -7
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +17 -7
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/filereader.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/form-core.js +1 -51
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +24 -15
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +6 -2
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +9 -4
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +135 -24
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +189 -55
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +3 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +47 -3
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +28 -8
- data/vendor/assets/javascripts/webshims/shims/mediagroup.js +29 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +11 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +17 -4
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +17 -6
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- metadata +3 -3
- data/vendor/assets/javascripts/webshims/shims/swf/jwwebshims.swf +0 -0
@@ -465,10 +465,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
465
465
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
466
466
|
}
|
467
467
|
|
468
|
-
if(webshims.cfg.extendNative === undefined){
|
469
|
-
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
470
|
-
}
|
471
|
-
|
472
468
|
if (!webshims.cfg.no$Switch) {
|
473
469
|
var switch$ = function(){
|
474
470
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
@@ -1749,62 +1745,12 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1749
1745
|
|
1750
1746
|
|
1751
1747
|
$(document).on('focusin.lazyloadvalidation', function(e){
|
1752
|
-
if('form' in e.target && $(e.target).is(':invalid')){
|
1748
|
+
if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
|
1753
1749
|
lazyLoad();
|
1754
1750
|
}
|
1755
1751
|
});
|
1756
1752
|
webshims.ready('WINDOWLOAD', lazyLoad);
|
1757
1753
|
|
1758
|
-
if(options.replaceValidationUI){
|
1759
|
-
webshims.ready('DOM forms', function(){
|
1760
|
-
$(document).on('firstinvalid', function(e){
|
1761
|
-
if(!e.isInvalidUIPrevented()){
|
1762
|
-
e.preventDefault();
|
1763
|
-
webshims.validityAlert.showFor( e.target );
|
1764
|
-
}
|
1765
|
-
});
|
1766
|
-
});
|
1767
|
-
}
|
1768
|
-
|
1769
|
-
/* extension, but also used to fix native implementation workaround/bugfixes */
|
1770
|
-
(function(){
|
1771
|
-
var firstEvent,
|
1772
|
-
invalids = [],
|
1773
|
-
stopSubmitTimer,
|
1774
|
-
form
|
1775
|
-
;
|
1776
|
-
|
1777
|
-
$(document).on('invalid', function(e){
|
1778
|
-
if(e.wrongWebkitInvalid){return;}
|
1779
|
-
var jElm = $(e.target);
|
1780
|
-
|
1781
|
-
|
1782
|
-
if(!firstEvent){
|
1783
|
-
//trigger firstinvalid
|
1784
|
-
firstEvent = $.Event('firstinvalid');
|
1785
|
-
firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
|
1786
|
-
var firstSystemInvalid = $.Event('firstinvalidsystem');
|
1787
|
-
$(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
|
1788
|
-
jElm.trigger(firstEvent);
|
1789
|
-
}
|
1790
|
-
|
1791
|
-
//if firstinvalid was prevented all invalids will be also prevented
|
1792
|
-
if( firstEvent && firstEvent.isDefaultPrevented() ){
|
1793
|
-
e.preventDefault();
|
1794
|
-
}
|
1795
|
-
invalids.push(e.target);
|
1796
|
-
e.extraData = 'fix';
|
1797
|
-
clearTimeout(stopSubmitTimer);
|
1798
|
-
stopSubmitTimer = setTimeout(function(){
|
1799
|
-
var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
|
1800
|
-
//reset firstinvalid
|
1801
|
-
firstEvent = false;
|
1802
|
-
invalids = [];
|
1803
|
-
$(e.target).trigger(lastEvent, lastEvent);
|
1804
|
-
}, 9);
|
1805
|
-
jElm = null;
|
1806
|
-
});
|
1807
|
-
})();
|
1808
1754
|
});
|
1809
1755
|
|
1810
1756
|
webshims.register('form-datalist', function($, webshims, window, document, undefined, options){
|
@@ -2094,6 +2040,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2094
2040
|
if(hasNative){
|
2095
2041
|
var videoElem = document.createElement('video');
|
2096
2042
|
Modernizr.videoBuffered = ('buffered' in videoElem);
|
2043
|
+
Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
|
2097
2044
|
supportsLoop = ('loop' in videoElem);
|
2098
2045
|
|
2099
2046
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
@@ -2107,20 +2054,15 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2107
2054
|
|
2108
2055
|
if(!options.preferFlash){
|
2109
2056
|
var noSwitch = {
|
2110
|
-
1: 1
|
2111
|
-
2: 1
|
2057
|
+
1: 1
|
2112
2058
|
};
|
2113
2059
|
var switchOptions = function(e){
|
2114
2060
|
var media, error, parent;
|
2115
2061
|
if(!options.preferFlash &&
|
2116
2062
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
2117
|
-
(media = $(e.target).closest('audio, video')) &&
|
2063
|
+
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
2118
2064
|
){
|
2119
|
-
|
2120
|
-
webshims.warn("There was an unspecified error on a mediaelement");
|
2121
|
-
return;
|
2122
|
-
|
2123
|
-
}
|
2065
|
+
|
2124
2066
|
$(function(){
|
2125
2067
|
if(hasSwf && !options.preferFlash){
|
2126
2068
|
loadSwf();
|
@@ -2132,7 +2074,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2132
2074
|
$('audio, video').each(function(){
|
2133
2075
|
webshims.mediaelement.selectSource(this);
|
2134
2076
|
});
|
2135
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
2077
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
|
2136
2078
|
}
|
2137
2079
|
}, 9);
|
2138
2080
|
});
|
@@ -2338,7 +2280,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2338
2280
|
if(src.indexOf('rtmp') === 0){
|
2339
2281
|
return nodeName+'/rtmp';
|
2340
2282
|
}
|
2341
|
-
src = src.split('?')[0].split('.');
|
2283
|
+
src = src.split('?')[0].split('#')[0].split('.');
|
2342
2284
|
src = src[src.length - 1];
|
2343
2285
|
var mt;
|
2344
2286
|
|
@@ -2457,7 +2399,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2457
2399
|
webshims.error('mediaelementError: '+ message);
|
2458
2400
|
setTimeout(function(){
|
2459
2401
|
if($(elem).data('mediaerror')){
|
2460
|
-
$(elem).trigger('mediaerror');
|
2402
|
+
$(elem).addClass('media-error').trigger('mediaerror');
|
2461
2403
|
}
|
2462
2404
|
}, 1);
|
2463
2405
|
}
|
@@ -2521,6 +2463,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2521
2463
|
var parent = elem.parentNode;
|
2522
2464
|
|
2523
2465
|
clearTimeout(baseData.loadTimer);
|
2466
|
+
$(elem).removeClass('media-error');
|
2524
2467
|
$.data(elem, 'mediaerror', false);
|
2525
2468
|
|
2526
2469
|
if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
|
@@ -2548,7 +2491,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2548
2491
|
var testFixMedia = function(){
|
2549
2492
|
if(webshims.implement(this, 'mediaelement')){
|
2550
2493
|
selectSource(this);
|
2551
|
-
|
2494
|
+
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
2495
|
+
$.prop(this, 'muted', true);
|
2496
|
+
}
|
2552
2497
|
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
2553
2498
|
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
2554
2499
|
var bufferTimer;
|
@@ -816,10 +816,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
816
816
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
817
817
|
}
|
818
818
|
|
819
|
-
if(webshims.cfg.extendNative === undefined){
|
820
|
-
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
821
|
-
}
|
822
|
-
|
823
819
|
if (!webshims.cfg.no$Switch) {
|
824
820
|
var switch$ = function(){
|
825
821
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
@@ -1921,6 +1917,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1921
1917
|
if(hasNative){
|
1922
1918
|
var videoElem = document.createElement('video');
|
1923
1919
|
Modernizr.videoBuffered = ('buffered' in videoElem);
|
1920
|
+
Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
|
1924
1921
|
supportsLoop = ('loop' in videoElem);
|
1925
1922
|
|
1926
1923
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
@@ -1934,20 +1931,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1934
1931
|
|
1935
1932
|
if(!options.preferFlash){
|
1936
1933
|
var noSwitch = {
|
1937
|
-
1: 1
|
1938
|
-
2: 1
|
1934
|
+
1: 1
|
1939
1935
|
};
|
1940
1936
|
var switchOptions = function(e){
|
1941
1937
|
var media, error, parent;
|
1942
1938
|
if(!options.preferFlash &&
|
1943
1939
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
1944
|
-
(media = $(e.target).closest('audio, video')) &&
|
1940
|
+
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
1945
1941
|
){
|
1946
|
-
|
1947
|
-
webshims.warn("There was an unspecified error on a mediaelement");
|
1948
|
-
return;
|
1949
|
-
|
1950
|
-
}
|
1942
|
+
|
1951
1943
|
$(function(){
|
1952
1944
|
if(hasSwf && !options.preferFlash){
|
1953
1945
|
loadSwf();
|
@@ -1959,7 +1951,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1959
1951
|
$('audio, video').each(function(){
|
1960
1952
|
webshims.mediaelement.selectSource(this);
|
1961
1953
|
});
|
1962
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
1954
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
|
1963
1955
|
}
|
1964
1956
|
}, 9);
|
1965
1957
|
});
|
@@ -2165,7 +2157,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2165
2157
|
if(src.indexOf('rtmp') === 0){
|
2166
2158
|
return nodeName+'/rtmp';
|
2167
2159
|
}
|
2168
|
-
src = src.split('?')[0].split('.');
|
2160
|
+
src = src.split('?')[0].split('#')[0].split('.');
|
2169
2161
|
src = src[src.length - 1];
|
2170
2162
|
var mt;
|
2171
2163
|
|
@@ -2284,7 +2276,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2284
2276
|
webshims.error('mediaelementError: '+ message);
|
2285
2277
|
setTimeout(function(){
|
2286
2278
|
if($(elem).data('mediaerror')){
|
2287
|
-
$(elem).trigger('mediaerror');
|
2279
|
+
$(elem).addClass('media-error').trigger('mediaerror');
|
2288
2280
|
}
|
2289
2281
|
}, 1);
|
2290
2282
|
}
|
@@ -2348,6 +2340,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2348
2340
|
var parent = elem.parentNode;
|
2349
2341
|
|
2350
2342
|
clearTimeout(baseData.loadTimer);
|
2343
|
+
$(elem).removeClass('media-error');
|
2351
2344
|
$.data(elem, 'mediaerror', false);
|
2352
2345
|
|
2353
2346
|
if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
|
@@ -2375,7 +2368,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2375
2368
|
var testFixMedia = function(){
|
2376
2369
|
if(webshims.implement(this, 'mediaelement')){
|
2377
2370
|
selectSource(this);
|
2378
|
-
|
2371
|
+
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
2372
|
+
$.prop(this, 'muted', true);
|
2373
|
+
}
|
2379
2374
|
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
2380
2375
|
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
2381
2376
|
var bufferTimer;
|
@@ -2599,6 +2594,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2599
2594
|
networkState: 0,
|
2600
2595
|
videoHeight: 0,
|
2601
2596
|
videoWidth: 0,
|
2597
|
+
seeking: false,
|
2602
2598
|
error: null,
|
2603
2599
|
buffered: {
|
2604
2600
|
start: function(index){
|
@@ -2702,7 +2698,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2702
2698
|
}
|
2703
2699
|
data.readyState = readyState;
|
2704
2700
|
};
|
2705
|
-
|
2701
|
+
var callSeeked = function(data){
|
2702
|
+
if(data.seeking && Math.abs(data.currentTime - data._lastSeektime) < 2){
|
2703
|
+
data.seeking = false;
|
2704
|
+
$(data._elem).triggerHandler('seeked');
|
2705
|
+
}
|
2706
|
+
};
|
2706
2707
|
|
2707
2708
|
|
2708
2709
|
mediaelement.jarisEvent = {};
|
@@ -2731,6 +2732,20 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2731
2732
|
}
|
2732
2733
|
}
|
2733
2734
|
},
|
2735
|
+
onSeek: function(jaris, data){
|
2736
|
+
data._lastSeektime = jaris.seekTime;
|
2737
|
+
|
2738
|
+
data.seeking = true;
|
2739
|
+
$(data._elem).triggerHandler('seeking');
|
2740
|
+
clearTimeout(data._seekedTimer);
|
2741
|
+
data._seekedTimer = setTimeout(function(){
|
2742
|
+
callSeeked(data);
|
2743
|
+
data.seeking = false;
|
2744
|
+
}, 300);
|
2745
|
+
},
|
2746
|
+
onConnectionFailed: function(){
|
2747
|
+
webshims.error('media error');
|
2748
|
+
},
|
2734
2749
|
onNotBuffering: function(jaris, data){
|
2735
2750
|
setReadyState(3, data);
|
2736
2751
|
},
|
@@ -2786,7 +2801,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2786
2801
|
setReadyState(3, data);
|
2787
2802
|
trigger(data._elem, 'playing');
|
2788
2803
|
}
|
2789
|
-
|
2804
|
+
if(data.seeking){
|
2805
|
+
callSeeked(data);
|
2806
|
+
}
|
2790
2807
|
trigger(data._elem, 'timeupdate');
|
2791
2808
|
},
|
2792
2809
|
onProgress: function(jaris, data){
|
@@ -2842,6 +2859,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2842
2859
|
|
2843
2860
|
return function(jaris, data){
|
2844
2861
|
var i = 0;
|
2862
|
+
|
2845
2863
|
var doneFn = function(){
|
2846
2864
|
if(i > 9){
|
2847
2865
|
data.tryedReframeing = 0;
|
@@ -3001,11 +3019,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3001
3019
|
|
3002
3020
|
|
3003
3021
|
var resetSwfProps = (function(){
|
3004
|
-
var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'videoHeight', 'videoWidth'];
|
3022
|
+
var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'seeking', 'videoHeight', 'videoWidth'];
|
3005
3023
|
var len = resetProtoProps.length;
|
3006
3024
|
return function(data){
|
3007
3025
|
|
3008
3026
|
if(!data){return;}
|
3027
|
+
clearTimeout(data._seekedTimer);
|
3009
3028
|
var lenI = len;
|
3010
3029
|
var networkState = data.networkState;
|
3011
3030
|
setReadyState(0, data);
|
@@ -3447,6 +3466,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3447
3466
|
descs[key].set = setFn;
|
3448
3467
|
};
|
3449
3468
|
|
3469
|
+
createGetSetProp('seeking');
|
3470
|
+
|
3450
3471
|
createGetSetProp('volume', function(v){
|
3451
3472
|
var data = getSwfDataFromElem(this);
|
3452
3473
|
if(data){
|
@@ -3557,8 +3578,26 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3557
3578
|
});
|
3558
3579
|
|
3559
3580
|
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
|
3581
|
+
|
3582
|
+
if(!Modernizr.mediaDefaultMuted){
|
3583
|
+
webshims.defineNodeNameProperties(nodeName, {
|
3584
|
+
defaultMuted: {
|
3585
|
+
get: function(){
|
3586
|
+
return $.attr(this, 'muted') != null;
|
3587
|
+
},
|
3588
|
+
set: function(val){
|
3589
|
+
if(val){
|
3590
|
+
$.attr(this, 'muted', '');
|
3591
|
+
} else {
|
3592
|
+
$(this).removeAttr('muted');
|
3593
|
+
}
|
3594
|
+
}
|
3595
|
+
}
|
3596
|
+
}, 'prop');
|
3597
|
+
}
|
3560
3598
|
});
|
3561
3599
|
|
3600
|
+
|
3562
3601
|
if(hasFlash && $.cleanData){
|
3563
3602
|
var oldClean = $.cleanData;
|
3564
3603
|
var flashNames = {
|
@@ -334,6 +334,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
334
334
|
networkState: 0,
|
335
335
|
videoHeight: 0,
|
336
336
|
videoWidth: 0,
|
337
|
+
seeking: false,
|
337
338
|
error: null,
|
338
339
|
buffered: {
|
339
340
|
start: function(index){
|
@@ -437,7 +438,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
437
438
|
}
|
438
439
|
data.readyState = readyState;
|
439
440
|
};
|
440
|
-
|
441
|
+
var callSeeked = function(data){
|
442
|
+
if(data.seeking && Math.abs(data.currentTime - data._lastSeektime) < 2){
|
443
|
+
data.seeking = false;
|
444
|
+
$(data._elem).triggerHandler('seeked');
|
445
|
+
}
|
446
|
+
};
|
441
447
|
|
442
448
|
|
443
449
|
mediaelement.jarisEvent = {};
|
@@ -466,6 +472,20 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
466
472
|
}
|
467
473
|
}
|
468
474
|
},
|
475
|
+
onSeek: function(jaris, data){
|
476
|
+
data._lastSeektime = jaris.seekTime;
|
477
|
+
|
478
|
+
data.seeking = true;
|
479
|
+
$(data._elem).triggerHandler('seeking');
|
480
|
+
clearTimeout(data._seekedTimer);
|
481
|
+
data._seekedTimer = setTimeout(function(){
|
482
|
+
callSeeked(data);
|
483
|
+
data.seeking = false;
|
484
|
+
}, 300);
|
485
|
+
},
|
486
|
+
onConnectionFailed: function(){
|
487
|
+
webshims.error('media error');
|
488
|
+
},
|
469
489
|
onNotBuffering: function(jaris, data){
|
470
490
|
setReadyState(3, data);
|
471
491
|
},
|
@@ -521,7 +541,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
521
541
|
setReadyState(3, data);
|
522
542
|
trigger(data._elem, 'playing');
|
523
543
|
}
|
524
|
-
|
544
|
+
if(data.seeking){
|
545
|
+
callSeeked(data);
|
546
|
+
}
|
525
547
|
trigger(data._elem, 'timeupdate');
|
526
548
|
},
|
527
549
|
onProgress: function(jaris, data){
|
@@ -577,6 +599,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
577
599
|
|
578
600
|
return function(jaris, data){
|
579
601
|
var i = 0;
|
602
|
+
|
580
603
|
var doneFn = function(){
|
581
604
|
if(i > 9){
|
582
605
|
data.tryedReframeing = 0;
|
@@ -736,11 +759,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
736
759
|
|
737
760
|
|
738
761
|
var resetSwfProps = (function(){
|
739
|
-
var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'videoHeight', 'videoWidth'];
|
762
|
+
var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'seeking', 'videoHeight', 'videoWidth'];
|
740
763
|
var len = resetProtoProps.length;
|
741
764
|
return function(data){
|
742
765
|
|
743
766
|
if(!data){return;}
|
767
|
+
clearTimeout(data._seekedTimer);
|
744
768
|
var lenI = len;
|
745
769
|
var networkState = data.networkState;
|
746
770
|
setReadyState(0, data);
|
@@ -1182,6 +1206,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
1182
1206
|
descs[key].set = setFn;
|
1183
1207
|
};
|
1184
1208
|
|
1209
|
+
createGetSetProp('seeking');
|
1210
|
+
|
1185
1211
|
createGetSetProp('volume', function(v){
|
1186
1212
|
var data = getSwfDataFromElem(this);
|
1187
1213
|
if(data){
|
@@ -1292,8 +1318,26 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
1292
1318
|
});
|
1293
1319
|
|
1294
1320
|
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
|
1321
|
+
|
1322
|
+
if(!Modernizr.mediaDefaultMuted){
|
1323
|
+
webshims.defineNodeNameProperties(nodeName, {
|
1324
|
+
defaultMuted: {
|
1325
|
+
get: function(){
|
1326
|
+
return $.attr(this, 'muted') != null;
|
1327
|
+
},
|
1328
|
+
set: function(val){
|
1329
|
+
if(val){
|
1330
|
+
$.attr(this, 'muted', '');
|
1331
|
+
} else {
|
1332
|
+
$(this).removeAttr('muted');
|
1333
|
+
}
|
1334
|
+
}
|
1335
|
+
}
|
1336
|
+
}, 'prop');
|
1337
|
+
}
|
1295
1338
|
});
|
1296
1339
|
|
1340
|
+
|
1297
1341
|
if(hasFlash && $.cleanData){
|
1298
1342
|
var oldClean = $.cleanData;
|
1299
1343
|
var flashNames = {
|