vendor/assets/javascripts/webshims/shims/combos/99.js in webshims-rails-1.14.4 vs vendor/assets/javascripts/webshims/shims/combos/99.js in webshims-rails-1.14.5
- old
+ new
@@ -274,34 +274,10 @@
jmeData.media = media;
jmeData.player = base;
media
- .on('ended emptied play', (function(){
- var timer;
- var releaseEmptied = function(){
- stopEmptiedEvent = false;
- };
- var ended = function(){
- removeCanPlay();
- media.jmeFn('pause');
- if(!options.noReload && media.prop('ended') && media.prop('paused') && !media.prop('autoplay') && !media.prop('loop') && !media.hasClass('no-reload')){
- stopEmptiedEvent = true;
- media.jmeFn('load');
- base.attr('data-state', 'ended');
- setTimeout(releaseEmptied);
-
- }
- };
- return function(e){
-
- clearTimeout(timer);
- if(e.type == 'ended' && !options.noReload && !media.prop('autoplay') && !media.prop('loop') && !media.hasClass('no-reload')){
- timer = setTimeout(ended);
- }
- };
- })())
.on('emptied waiting canplay canplaythrough playing ended pause mediaerror', mediaUpdateFn)
.on('volumechange updateJMEState', function(){
var volume = $.prop(this, 'volume');
base[!volume || $.prop(this, 'muted') ? 'addClass' : 'removeClass']('state-muted');
@@ -596,22 +572,38 @@
var lastPosterState, lastYoutubeState, lastPoster;
var hasFlash = window.swfmini && swfmini.hasFlashPlayerVersion('10.0.3');
var regYt = /youtube\.com\/[watch\?|v\/]+/i;
var isInitial = data.media.prop('paused');
+ var isEnded = data.media.prop('ended');
if(isInitial){
data.player.addClass('initial-state');
}
+ if(isEnded){
+ data.player.addClass('ended-state');
+ }
if(!('backgroundSize' in $poster[0].style)){
data.player.addClass('no-backgroundsize');
}
- data.media.on('playing waiting seeked seeking', function(){
+ data.media.on('play playing waiting seeked seeking', function(e){
+
if(isInitial){
isInitial = false;
data.player.removeClass('initial-state');
}
+
+ if(isEnded){
+ isEnded = false;
+ data.player.removeClass('ended-state');
+ }
});
+ data.media.on('ended', function(){
+ if(!isEnded && !data.media.prop('loop') && data.media.prop('ended')){
+ isEnded = true;
+ data.player.addClass('ended-state');
+ }
+ });
return function(){
var poster = data.media.attr('poster');
var hasPoster = !!poster;
var currentSrc = data.media.prop('currentSrc') || '';
var isYt = regYt.test(currentSrc);
@@ -636,9 +628,14 @@
}
if(data.media.prop('paused')){
data.player.addClass('initial-state');
isInitial = true;
+ }
+
+ if(isEnded){
+ isEnded = false;
+ data.player.removeClass('ended-state');
}
if(lastYoutubeState !== hasYt){
lastYoutubeState = hasYt;
data.player[hasYt ? 'addClass' : 'removeClass']('has-ytposter');