]> _ Git - fluidbook-html5.git/commitdiff
wip #7885
authorsoufiane <soufiane@cubedesigners.com>
Thu, 1 Jan 2026 22:40:30 +0000 (23:40 +0100)
committersoufiane <soufiane@cubedesigners.com>
Thu, 1 Jan 2026 22:40:30 +0000 (23:40 +0100)
js/libs/fluidbook/fluidbook.video.js

index 11b41ae7ca4bd1582a3ba5c94cd89d9dac98c563..7280a8e595379444db78d33530197819cb09302f 100644 (file)
@@ -230,29 +230,61 @@ FluidbookVideo.prototype = {
             let defaultTrack = true;
             for (var i = 0; i < tracks.length; i++) {
                 var track = tracks[i];
+
                 if (!track.file) {
                     continue;
                 }
-                html += '<track kind="' + track.kind + '"';
-                if (track.label) {
-                    html += ' label="' + track.label + '"';
-                }
-                html += ' src="data/links/' + track.file + '"';
-                if (track.lang) {
-                    html += ' srclang="' + track.lang + '"';
-                }
-                if (defaultTrack) {
-                    html += ' default';
-                    defaultTrack = false;
+
+                if(track.file.includes('.mp3')) {
+                    /*html += '<track kind="audio" src="data/links/'+track.file+'" srclang="en" label="English Audio Description">'
+                    html += '<track kind="audio" src="data/links/'+track.file+'" srclang="en" label="English Audio Description">'
+                */}else {
+                    html += '<track kind="' + track.kind + '"';
+                    if (track.label) {
+                        html += ' label="' + track.label + '"';
+                    }
+                    html += ' src="data/links/' + track.file + '"';
+                    if (track.lang) {
+                        html += ' srclang="' + track.lang + '"';
+                    }
+                    if (defaultTrack) {
+                        html += ' default';
+                        defaultTrack = false;
+                    }
+                    html += '>';
                 }
-                html += '>';
             }
         }
         html += '</video>';
+
         $(e).html(html);
 
         let playEventSent = false;
 
+        player = videojs(id, setup);
+
+        for (var k = 0; k < tracks.length; k++) {
+            var track = tracks[k];
+
+            if(!track.file.includes('.mp3')) {
+                continue;
+            }
+
+            // Create a track object.
+            var trackObj = new videojs.AudioTrack({
+                kind: track.kind,
+                label: track.label,
+                language: track.srclang
+            });
+
+            player.audioTracks().addTrack(trackObj);
+
+            // Add audio
+            // var html = '<audio id="audio_'+id+'" src="data/links/'+track.file+'"></audio>';
+
+            //$(e).append(html)
+        }
+
         function sendPlayEvent() {
             if (!playEventSent) {
                 $this.fluidbook.stats.trackEvent(statsType, 'play', statsName);
@@ -260,11 +292,20 @@ FluidbookVideo.prototype = {
             }
         }
 
-        player = videojs(id, setup);
-
         player.ready(function () {
+            player.controlBar.addChild('AudioTrackButton');
 
             // Hide CC if disabled in video settings
+
+            var tracks = player.audioTracks();
+            console.log(tracks);
+
+            for (var i = 0; i < tracks.length; i++) {
+                console.log(tracks[i].label, tracks[i].language, tracks[i].enabled);
+            }
+
+            tracks[0].enabled = true
+
             console.log('cc', cc);
             if (!cc) {
                 console.log('cc disabled');
@@ -377,6 +418,10 @@ FluidbookVideo.prototype = {
             });
 
             $this.fluidbook.sound.pauseAmbientIfSomethingIsPlaying();
+
+
+            /*player.muted(1)
+            $("#audio_"+id)[0].play();*/
         });
 
         player.on('pause', function () {
@@ -397,6 +442,8 @@ FluidbookVideo.prototype = {
             });
 
             $this.fluidbook.sound.playAmbientIfNothingIsPlaying();
+
+            $("#audio_"+id)[0].pause();
         });
 
         player.on('fullscreenchange', function () {
@@ -473,7 +520,8 @@ FluidbookVideo.prototype = {
         //console.log('Resulting HTML:', html);
 
         popup.html(html);
-        videojs($('#videoPopup video'));
+        var player = videojs($('#videoPopup video'));
+
         $('body').addClass('videoPopup');
         popup.show();
 
@@ -550,6 +598,8 @@ FluidbookVideo.prototype = {
 
     disposeVideo: function (player) {
         var id = player.id();
+        console.log('id',id)
+        console.log("this",$(this))
 
         // Save the current player info if it has started
         if (player.hasStarted()) {