audio-stream

0.2.0 • Public • Published

audio-stream

Stream raw audio data from a MediaStream. Only works in modern browsers that support the Web Audio API.

npm install audio-stream

See the live recorder demo.

Usage

Use together with tools similar to browserify. The data is streamed as interleaved 32-bit floats ranging between -1 and 1.

var audio = require('audio-stream');
 
navigator.getUserMedia({
    video: false,
    audio: true
}, function(mediaStream) {
    var stream = audio(mediaStream, {
        channels: 1,
        volume: 0.5
    });
 
    stream.on('header', function(header) {
        // Wave header properties
    });
 
    stream.on('data', function(data) {
        // Data is a Buffer instance (UInt8Array)
    });
 
    stream.on('end', function() {
        // End is emitted when media stream has ended
    });
 
    setTimeout(function() {
        mediaStream.stop();
    }, 5000);
}, function() {
    console.log('Failed to get media');
});

The constructor accepts number of channels and microphone volume as options.

stream.destroy([err])

Destroy the audio stream, releasing all associated resources. The media stream is not closed.

stream.suspend()

Suspend audio data capturing.

stream.restart()

Restart audio data capturing.

Limitations

Currently Chrome lacks supports for capturing a remote stream sent using a peer connection. But works in Firefox.

// This only works in Firefox at the moment
peerConnection.onaddstream = function(e) {
    var stream = audio(e.stream);
 
    stream.on('data', function(data) {
 
    });
};

Package Sidebar

Install

npm i audio-stream

Weekly Downloads

12

Version

0.2.0

License

MIT

Last publish

Collaborators

  • kapetan