vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js in webshims-rails-1.14.4 vs vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js in webshims-rails-1.14.5

- old
+ new

@@ -149,22 +149,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); @@ -189,9 +205,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');