hypeDocument.loadSound
Load soundfiles from the library and plays them back.
/**
* hypeDocument.loadSound 1.0
* @param {String} soundname without extention (mp3/ogg/wav)
* @param {String} uniqueId to load the same sound multiple times (optional)
* @require getPrivateContainer
* @return {HTMLAudioElement}
*/
hypeDocument.loadSound = function(soundname, uniqueId){
var soundId = soundname+'_-_'+( (uniqueId===undefined)?'':uniqueId);
if (!hypeDocument.hasOwnProperty('_sounds')) {
hypeDocument._sounds={};
}
if (!hypeDocument._sounds.hasOwnProperty(soundId)) {
var pc = hypeDocument.getPrivateContainer('sounds');
var sndElm = document.createElement('audio');
if (!!(sndElm.canPlayType && sndElm.canPlayType('audio/mpeg;').replace(/no/, ''))) {
sndElm.setAttribute('src','${resourcesFolderName}/'+soundname+'.mp3');
} else {
sndElm.setAttribute('src','${resourcesFolderName}/'+soundname+'.ogg');
}
pc.appendChild(sndElm);
hypeDocument._sounds[soundId]=sndElm;
}
return hypeDocument._sounds[soundId];
}
Usage:
Given you have a file called “soundfile.mp3” in your library this function attaches it to your document for further use. The return value is a regular HTMLAudioElement with all it’s functions. Also this functions supports a built in ogg fallback given you supply the file in the library. Wav is currently unsupported (but easy to hack).
var snd = hypeDocument.loadSound('soundfile');
snd.play();
Requires:
hypeDocument.getPrivateContainer