1.0.4 • Published 10 years ago

webaudioloader v1.0.4

Weekly downloads
30
License
MIT
Repository
github
Last release
10 years ago

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

  1. With npm do:

    npm install webaudioloader

  2. Use browserify:

    var WebAudioLoader = require('webaudioloader')

    and

    browserify myapp.js > bundle.js

  3. 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 arguments `callback(err, buffer)`.
    	- `onprogress` : Function - global callback when a load operation is in progress. The callback return a progress Event.
    	- `context` : AudioContext - an [AudioContext](http://webaudio.github.io/web-audio-api/#the-audiocontext-interface) to use for decoding the audio.

Properties

  • onload : Function - global callback when a load operation is complete. The callback has node style return arguments callback(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 :
    	```js
    	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 the `onload` callback returns an `AudioBuffer`, else it returns an `ArrayBuffer`.
    		- `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 arguments `callback(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