]> _ Git - fluidbook-html5.git/commitdiff
wip #7113 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 8 Oct 2024 09:45:07 +0000 (11:45 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 8 Oct 2024 09:45:07 +0000 (11:45 +0200)
js/libs/fluidbook/fluidbook.audioplayer.js

index 4480a92c7e3a67a38a429d1715a5d54a8b282f91..5771cd76fe8bac03fb4609b4f96031f362b6c06e 100644 (file)
@@ -35,6 +35,9 @@ FluidbookAudioPlayer.prototype = {
         $('audio.twostatesicon').each(function () {
             $this.initTwoStatesIconPlayer(this);
         });
+        $('audio.invisible').each(function () {
+            $this.initInvisiblePlayer(this);
+        });
     },
 
 
@@ -63,15 +66,16 @@ FluidbookAudioPlayer.prototype = {
         arc.attr('stroke-width', sw);
     },
 
+    initInvisiblePlayer: function (player) {
+        this.handleAutoplay(player, []);
+    },
+
     initTwoStatesIconPlayer: function (player) {
         if ($(player).find('.icon').length > 0) {
             return;
         }
         var vp = $(player).next('.visualPlayer');
-        if ($(player).prop('autoplay')) {
-            $(player).addClass('playing');
-            $(vp).addClass('playing');
-        }
+        this.handleAutoplay(player, [vp]);
 
         vp.append('<div class="icon play">' + getSpriteIcon('audioplayer-play') + '</div>');
         vp.append('<div class="icon pause">' + getSpriteIcon('audioplayer-pause') + '</div>');
@@ -81,11 +85,7 @@ FluidbookAudioPlayer.prototype = {
         var vp = $(player).next('.visualPlayer');
         vp.append('<div class="p"></div>');
         let p = $(vp).find('.p');
-        if ($(player).prop('autoplay')) {
-            $(player).addClass('playing');
-            $(vp).addClass('playing');
-            $(p).addClass('playing');
-        }
+        this.handleAutoplay(player, [vp, p]);
 
         p.append('<div class="back"></div>');
         p.append('<div class="icon play">' + getSpriteIcon('audioplayer-play') + '</div>');
@@ -100,6 +100,21 @@ FluidbookAudioPlayer.prototype = {
         $(player).data(paper);
     },
 
+    handleAutoplay: function (player, addPlaying) {
+        if (!$(player).prop('autoplay')) {
+            if ($(player).data('autoplay') == 2 && this.fluidbook.sound.enabled && this.fluidbook.sound.on) {
+                $(player).prop('autoplay', true);
+            }
+        }
+
+        if ($(player).prop('autoplay')) {
+            $(player).addClass('playing');
+            $.each(addPlaying, function (k, v) {
+                $(v).addClass('playing');
+            })
+        }
+    },
+
 
     arc: function (center, radius, startAngle, endAngle) {
         angle = startAngle;