]> _ Git - fluidbook-html5.git/commitdiff
wip #942 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 8 Nov 2016 13:57:08 +0000 (13:57 +0000)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 8 Nov 2016 13:57:08 +0000 (13:57 +0000)
js/libs/fluidbook/fluidbook.audiodescription.js

index f1f6b9b76bfd4dd44362d3a4119cb50bae003460..d3caaafbb6e08210278628d5b854c6032102c804 100644 (file)
@@ -8,10 +8,17 @@ function FluidbookAudioDescription(fluidbook) {
     this.dataPath = 'data/audiodescription/';
     this.container = $('#interface');
     this.buttonClass = 'audio-description-button';
+    this.audioSupport = Modernizr.audio;
 
     // Players
-    this.audioplayerLeft = new Audio();
-    this.audioplayerRight = new Audio();
+    if (this.audioSupport) {
+        try {
+            this.audioplayerLeft = new Audio();
+            this.audioplayerRight = new Audio();
+        } catch (err) {
+            this.audioSupport = false;
+        }
+    }
 
     // Button elements
     this.buttonLeft = document.createElement('a');
@@ -19,7 +26,9 @@ function FluidbookAudioDescription(fluidbook) {
     this.buttonRight = document.createElement('a');
     this.buttonRight.setAttribute('class', this.buttonClass + ' right');
 
-    this.init();
+    if (this.audioSupport) {
+        this.init();
+    }
 }
 
 FluidbookAudioDescription.prototype = {
@@ -82,7 +91,7 @@ FluidbookAudioDescription.prototype = {
 
         this.pauseAllPlayers();
 
-        var pageNumLeft  = this.fluidbook.getPageNumberOfSide('left'),
+        var pageNumLeft = this.fluidbook.getPageNumberOfSide('left'),
             pageNumRight = this.fluidbook.getPageNumberOfSide('right');
 
         // Left hand page
@@ -103,30 +112,36 @@ FluidbookAudioDescription.prototype = {
 
     },
 
-    pauseAllPlayers: function() {
+    pauseAllPlayers: function () {
+        if (!this.audioSupport) {
+            return;
+        }
         this.audioplayerLeft.pause();
         this.audioplayerRight.pause();
 
         $('.' + this.buttonClass).removeClass('playing'); // Reset button states
     },
 
-    endPlaying: function(player) {
+    endPlaying: function (player) {
         this.pauseAllPlayers(); // Reset button states and ensure all playback is halted
         player.currentTime = 0; // Rewind audio
     },
 
-    hasAudio: function(page) {
+    hasAudio: function (page) {
+        if (!this.audioSupport) {
+            return false;
+        }
 
         if (this.fluidbook.datas.audiodescription === undefined) return false;
 
         return (this.fluidbook.datas.audiodescription[page] !== undefined);
     },
 
-    getAudio: function(page) {
+    getAudio: function (page) {
         return this.dataPath + this.fluidbook.datas.audiodescription[page];
     },
 
-    playSide: function(side) {
+    playSide: function (side) {
 
         var targetSelector = '.' + this.buttonClass + '.' + side,
             pageNum = this.fluidbook.getPageNumberOfSide(side);