]> _ Git - fluidbook-html5.git/commitdiff
wait #7885 @21:00
authorsoufiane <soufiane@cubedesigners.com>
Fri, 9 Jan 2026 16:53:23 +0000 (17:53 +0100)
committersoufiane <soufiane@cubedesigners.com>
Fri, 9 Jan 2026 16:53:23 +0000 (17:53 +0100)
js/libs/fluidbook/fluidbook.video.js

index 7b1e9673f3244f18ba3f9e115d67ed2c896a1d0d..7d3a56df24a5ff18cb612c70c43a87094cbeb720 100644 (file)
@@ -272,10 +272,6 @@ FluidbookVideo.prototype = {
             }
         }
 
-        // Fake audio track to force tracklist display
-        const mainTrack = new videojs.AudioTrack({});
-        player.audioTracks().addTrack(mainTrack);
-
         function addAudioTracks() {
             var audioTrackHtml = '<div class="audioTrackContainer">';
 
@@ -304,15 +300,17 @@ FluidbookVideo.prototype = {
         }
 
         function syncAudioAndVideo(audioTrackList) {
-            var track = audioTrackList.tracks_.filter((n) => { return n.enabled; })[0];
+            var enabledTrack = audioTrackList.tracks_.filter((n) => { return n.enabled; })[0];
 
-            if (track) {
-                $("audio#" + track.id)[0].currentTime = player.currentTime();
+            if (enabledTrack) {
+                $("audio#" + enabledTrack.id)[0].currentTime = player.currentTime();
             }
         }
 
         function resetAudios(track) {
-            if(track) {
+            for (var i = 0; i < audioTrackList.length; i++) {
+                var track = audioTrackList[i];
+                $("audio#" + track.id)[0].pause();
                 $("audio#" + track.id)[0].currentTime = 0;
             }
         }
@@ -431,12 +429,16 @@ FluidbookVideo.prototype = {
             }
         });
 
-
         player.on('play', function () {
             $.each(hidelinksonplay, function (k, id) {
                 $this.fluidbook.links.hideLinkById(id);
             });
 
+            var enabledTrack = getEnabledTrack(audioTrackList)
+            console.log("enabledTrack",enabledTrack)
+            if(enabledTrack) {
+                $("audio#" + enabledTrack.id)[0].play();
+            }
             syncAudioAndVideo(audioTrackList)
 
             $this.fluidbook.sound.pauseAmbientIfSomethingIsPlaying();
@@ -450,15 +452,11 @@ FluidbookVideo.prototype = {
 
             // Now the issue is that we need to hide it again if we start playing
             // So every time we do this, we can create a one-time listener for play events.
-            let enabledTrack = getEnabledTrack(audioTrackList)
             player.one('play', function () {
                 this.bigPlayButton.hide();
-                if(enabledTrack) {
-                    $("audio#" + enabledTrack.id)[0].play();
-                    syncAudioAndVideo(audioTrackList)
-                }
             });
 
+            let enabledTrack = getEnabledTrack(audioTrackList)
             if(enabledTrack) {
                 syncAudioAndVideo(audioTrackList)
                 $("audio#" + enabledTrack.id)[0].pause();
@@ -475,18 +473,19 @@ FluidbookVideo.prototype = {
         audioTrackList.addEventListener('change', function() {
             player.muted(1)
 
-            // Log the currently enabled AudioTrack label.
-            for (var i = 0; i < audioTrackList.length; i++) {
-                var track = audioTrackList[i];
+            resetAudios()
 
-                resetAudios(track)
+            var track = getEnabledTrack(audioTrackList);
 
-                if (track.enabled) {
-                    $("audio#"+track.id)[0].play()
-                    $("audio#"+track.id)[0].currentTime = player.currentTime()
-                    return;
-                }
+            console.log("player.paused()",player.paused())
+
+            if(track && !player.paused()) {
+                $("audio#"+track.id)[0].play()
+                syncAudioAndVideo(audioTrackList)
+                console.log("audioTrackList",audioTrackList)
+                return;
             }
+
         });
 
         player.on('fullscreenchange', function () {
@@ -502,7 +501,9 @@ FluidbookVideo.prototype = {
             syncAudioAndVideo(audioTrackList)
             var enabledTrack = getEnabledTrack(audioTrackList);
             if(enabledTrack) {
-                $("audio#" + enabledTrack.id)[0].ended()
+                enabledTrack.enabled = false
+                $("audio#" + enabledTrack.id)[0].pause()
+                $("audio#" + enabledTrack.id)[0].currentTime = 0
             }
         });