An interface for writing audio with Firefox's new audio data API with a Flash fallback for older browsers.
Built packages can be downloaded from GitHub.
For a basic example, see demo.html
.
First, instantiate a DynamicAudio
object with a dictionary of options:
var dynamicaudio = new DynamicAudio({'swf': '/static/dynamicaudio.swf'})
The swf
option specifies the path of the dynamicaudio.swf
file relative
to the page being displayed.
The DynamicAudio
object has two methods available on it:
Plays an array of floating point audio samples in the range -1.0 to 1.0.
They are output as 2 channels at 44.1 KHz. This means it takes 88,200 samples to
play 1 second of audio. You do not need to supply this many samples in a single
call, but if you don't call write()
often enough with enough samples, you
will get buffer underruns.
This method is the same as write()
, but is instead supplied with integer
samples in the range -32,768 to 32,767. If your samples are already integers,
this method is more efficient.
To build, you will need jake:
$ sudo gem install jake
You will also need Adobe's
Flex SDK. This should be
placed in a flexsdk
directory in the same directory as jake.yml
.
Now run:
$ jake