JSPM

webaudioloader

1.0.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 495
  • Score
    100M100P100Q85207F
  • License MIT

Caching Loader (with optional decode) audio files to be used with WebAudio

Package Exports

  • webaudioloader

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (webaudioloader) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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

  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 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 :

    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