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');
this.buttonRight = document.createElement('a');
this.buttonRight.setAttribute('class', this.buttonClass + ' right');
- this.init();
+ if (this.audioSupport) {
+ this.init();
+ }
}
FluidbookAudioDescription.prototype = {
this.pauseAllPlayers();
- var pageNumLeft = this.fluidbook.getPageNumberOfSide('left'),
+ var pageNumLeft = this.fluidbook.getPageNumberOfSide('left'),
pageNumRight = this.fluidbook.getPageNumberOfSide('right');
// Left hand page
},
- 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);