Output PCM stream data to speaker with SDL2. Especially for realtime audio stream.
- Stream Support. You can pipe a pcm stream to audio channel.
- Multi Channels Support. You can open multi channels, it will mix all channels via
SDL_MixAudioFormat
. - Low Latency.
$ npm install sdl-speaker
const Speaker = require('sdl-speaker');
// Init SDL Speaker.
Speaker.init();
// Register a channel for write buf.
const testChannel = Speaker.register('test');
// pipe a pcm data to stream;
fs.createReadStream('test.pcm').pipe(testChannel);
// When you are ready..
// Start play audio
Speaker.start();
Init SDL. option
is optional.
channels
: Channel count. default:2
.samplesRate
: Sample rate for every channel. default:44100
.samplesPerFrame
: Samples per frame. default:1024
.
Start play audio. Read audio data from a ring buffer. If data in ring buffer less than samplesPerFrame
, fill 0.
Close and Destroy SDL player.
Pause SDL player.
Resume SDL player.
Detach audio source from SDL.
Clean all audio sources's buffer.
Register a audio source for write buffer. The name
must unique.
Write audio buffer to ring buffer. You can write before speaker start.
Clean this audio source's buffer.
- More Test.
- Fix Travis-CI build failed.
- Pipe stream to
audioSource
. - Customise
rbuf
capability. - Self contained
SDL2
.