webshims-rails 1.10.11 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 = {
|