Sindbad~EG File Manager
H5P.ArithmeticQuiz.SoundEffects = (function () {
let isDefined = false;
var SoundEffects = {
types: [
'positive-short',
'negative-short'
],
sounds: [],
muted: false
};
const players = {};
/**
* Setup defined sounds
*
* @return {boolean} True if setup was successfull, otherwise false
*/
SoundEffects.setup = function (libraryPath) {
if (isDefined) {
return false;
}
isDefined = true;
SoundEffects.types.forEach(async (type) => {
const player = new Audio();
const extension = player.canPlayType('audio/ogg') ? 'ogg' : 'mp3';
const response = await fetch(libraryPath + 'sounds/' + type + '.' + extension);
const data = await response.blob();
player.src = URL.createObjectURL(data);
players[type] = player;
});
return true;
};
/**
* Play a sound
*
* @param {string} type Name of the sound as defined in [SoundEffects.types]
* @param {number} delay Delay in milliseconds
*/
SoundEffects.play = function (type, delay) {
if (SoundEffects.muted === false) {
if (!players[type]) {
return;
}
setTimeout(function () {
players[type].play();
}, delay || 0);
}
};
/**
* Mute. Subsequent invocations of SoundEffects.play() will not make any sounds beeing played.
*/
SoundEffects.mute = function () {
SoundEffects.muted = true;
};
/**
* Unmute
*/
SoundEffects.unmute = function () {
SoundEffects.muted = false;
};
return SoundEffects;
})();
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists