webaudioloader
v1.0.4
Published
Caching Loader (with optional decode) audio files to be used with WebAudio
Downloads
331
Maintainers
Readme
WebAudioLoader
Caching Loader and Decoder for audio files to be used with Web Audio.
Usage:
var WebAudioLoader = require("webaudioloader");
var audioContext = new AudioContext();
var options = {
context : audioContext,
cache : true,
maxCacheSize : 2000,
onprogress : function (event){
console.log('Loading some files...', event.loaded/event.total);
}
}
var wal = new WebAudioLoader(options);
wal.load('http://www.example.com/audio.mp3', {
onload : function (err, buffer){
if(!err){
console.log('Loaded file of duration', buffer.duration);
}
},
});
Why WebAudioLoader
- Easy API (deals with loading and decoding audio for you) for XHR loading of audio.
- Uses LRU Cache for caching decoded audio.
- Uses node style callbacks (err, buffer) to return decoded buffers.
- Registers a global single instance and returns a reference if one is found.
Note
- Web Audio only works in a browser (for now), so does this module.
Install
With npm do:
npm install webaudioloader
Use browserify:
var WebAudioLoader = require('webaudioloader')
and
browserify myapp.js > bundle.js
Standalone (AMD, global object) builds are avilable here.
API
Constructor
eg : var wal = new WebAudioLoader(options);
option object can have following optional properties
cache
: boolean - enable/disable cache globally. Default is true.maxCacheSize
: Number - maximum size in kB of cached audio buffers. Default is 1000.onload
: Function - global callback when a load operation is complete. The callback has node style return argumentscallback(err, buffer)
.onprogress
: Function - global callback when a load operation is in progress. The callback return a progress Event.context
: AudioContext - an AudioContext to use for decoding the audio.
Properties
onload
: Function - global callback when a load operation is complete. The callback has node style return argumentscallback(err, buffer)
.eg :
wal.onload = function(){};
onprogress
: Function - global callback when a load operation is in progress. The callback return a progress Event.eg :
wal.onprogress = function(){};
cache
: boolean - enable/disable cache globally.eg :
wal.cache = false;
Methods
load
: Main API method to load ()and decode) a given AudioFile.eg :
wal.load('http://www.example.com/audio.mp3'); wal.load([object File]); wal.load('http://www.example.com/audio.mp3', options);
the source argument can either be a URL String or a File object
option object can have following optional properties
decode
: boolean - toggle if the audio file should be decoded. If decoded theonload
callback returns anAudioBuffer
, else it returns anArrayBuffer
.cache
: boolean - if the audio from this specific load call should be cached. Overrides the global property.onload
: Function - callback when this specific load operation is complete. The callback has node style return argumentscallback(err, buffer)
.onprogress
: Function - callback when this specific load operation is in progress. The callback return a progress Event.
flushCache
: Resets the internal cache of the loader.eg :
wal.flushCache();
License
MIT