From 1a2e77a5e132e173df8761a64ed859044fef79cf Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 8 Nov 2016 13:57:08 +0000 Subject: [PATCH] wip #942 @1 --- .../fluidbook/fluidbook.audiodescription.js | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/js/libs/fluidbook/fluidbook.audiodescription.js b/js/libs/fluidbook/fluidbook.audiodescription.js index f1f6b9b7..d3caaafb 100644 --- a/js/libs/fluidbook/fluidbook.audiodescription.js +++ b/js/libs/fluidbook/fluidbook.audiodescription.js @@ -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); -- 2.39.5