28 lines
No EOL
657 B
JavaScript
28 lines
No EOL
657 B
JavaScript
const nodeAudio = require('bindings')('nodeaudio.node');
|
|
console.log("Imported nodeAudio");
|
|
|
|
const wait = async (callback, seconds) => {
|
|
await setTimeout(() => {
|
|
callback();
|
|
}, seconds);
|
|
}
|
|
|
|
const recordThenPlay = async (recSeconds) => {
|
|
|
|
console.log("Initializing nodeAudio");
|
|
nodeAudio.initialize();
|
|
|
|
nodeAudio.fill_input_buffer();
|
|
|
|
console.log(`Recording for ${recSeconds} seconds`);
|
|
const audio = await wait(nodeAudio.return_input_buffer, recSeconds);
|
|
|
|
console.log("Playing audio");
|
|
nodeAudio.feed_output_buffer(audio);
|
|
|
|
console.log("Shutting down audio");
|
|
nodeAudio.terminate();
|
|
|
|
}
|
|
|
|
recordThenPlay(5); |