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');