@yellowinnovation/node-rodio

0.0.9 • Public • Published

node-rodio

npm (scoped) David

Rodio (Rust audio playback library) bindings for Node.js, built with Neon

Installation

npm install @yellowinnovation/node-rodio

or

{
    "dependencies": {
        "@yellowinnovation/node-rodio": "0.0.9"
    }
}

Usage

const rodio = require('@yellowinnovation/node-rodio');

try {
    console.log(rodio.defaultInputDevice()); // { name: "Your default microphone" ... sample rate, format etc }
    console.log(rodio.defaultOutputDevice()); // { name: "Your default speakers/headphones" ... sample rate, format etc }
    console.log(rodio.devices()); // Lists all devices on the machine
    console.log(rodio.inputDevices()); // Lists all input devices on the machine
    console.log(rodio.outputDevices()); // Lists all output devices on the machine

    const player = new rodio.Player(); // Initializes a new player

    player.append("./samples/music.mp3"); // Loads a file in the queue
    player.append("./samples/beep.wav"); // Another one that will play after the music.mp3
    player.volume(0.5); // Sets volume to 50%; CANNOT BE USED DURING PLAYBACK OR IT WILL THROW, it'll behave fine here though
    // If you'd like to get sounds in parallel, just create another player and make them .play(); at the same time!
    player.play(() => { // Starts playback, expects a callback that is executed when the queue is over
        console.log('done!');
    });
    player.pause(); // Pauses playback
    player.resume(); // Resumes playback
    player.volume(1.0); // Sets the volume to 100%; CANNOT BE USED DURING PLAYBACK OR IT WILL THROW, it will throw here for example
    player.stop(); // Stops playback completely and empties queue.
    // player is not usable at this point since we killed the background thread.
} catch (e) {
    console.error(e); // all functions can throw in case there's a problem with system configuration or you did something wrong
}

License

Licensed under:

Credits

Yellow Innovation

Yellow Innovation is the innovation laboratory of the French postal service: La Poste.

We create innovative user experiences and journeys through services with a focus on IoT lately.

Yellow Innovation's website and works

Dependents (0)

Package Sidebar

Install

npm i @yellowinnovation/node-rodio

Weekly Downloads

1

Version

0.0.9

License

(MIT OR Apache-2.0)

Unpacked Size

59.3 kB

Total Files

13

Last publish

Collaborators

  • martin-mh
  • otak