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