1
0
Fork 0
soundbox/soundbox.min.js

2 lines
809 B
JavaScript

function SoundBox(){this.sounds={},this.load=function(a,b,c){return this.sounds[a]=new Audio(b),"function"==typeof c?void this.sounds[a].addEventListener("canplaythrough",c):new Promise(d=>this.sounds[a].addEventListener("canplaythrough",d),this.sounds[a].addEventListener("error",reject))},this.remove=function(a){"undefined"!=typeof this.sounds&&delete this.sounds[a],"function"==typeof this.sound_callbacks&&delete this.sound_callbacks[a]},this.play=function(a,b){if("undefined"==typeof this.sounds[a])return console.error("Can't find sound called '"+a+"'."),!1;var c=this.sounds[a].cloneNode(!0);return c.play(),"function"==typeof b?(console.log("Adding callback"),c.addEventListener("ended",b),!0):(console.log("Returning promise"),new Promise(d=>c.addEventListener("ended",d)))}}SoundBox.version="0.2";