Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages