Skip to content

Instantly share code, notes, and snippets.

@jtenner
Created November 6, 2013 23:30
Show Gist options
  • Save jtenner/7346135 to your computer and use it in GitHub Desktop.
Save jtenner/7346135 to your computer and use it in GitHub Desktop.
jWebAudio plugin
~function(NovelScript){
NovelScript.plugins.push(function(self){
var engine = new jWebAudio.SoundEngine();
var sources = [];
self.on('audio:add', function(audioOptions){
var source;
source = engine.addSoundSource({
'url': audioOptions.src,
'preload': true,
'loop': audioOptions.loop,
'callback': function(){
self.trigger("audio:loaded", source).trigger("audio:loaded:"+source.id);
},
'finish': function(){
self.trigger("audo:finished", source).trigger("audio:finished:"+source.id);
}
});
sources[audioOptions.id] = source
});
['play','stop','pause'].forEach(function(obj){
self.default('audio:'+obj, function(audioSourceID){
var source = sources[audioSourceID];
source.sound[obj]();
if(source.id)
self.trigger('audio:'+obj+':'+audioSourceID, source);
});
});
self.default('audio:seek', function(audioSourceID, seconds){
var source = sources[audioSourceID];
if(source){
soure.sound.seek(seconds);
self.trigger('audio:seek:'+audioSourceID);
}
})
});
}(NovelScript)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment