Как решить проблему потери выходного значения с помощью naudiodon / portaudio? - PullRequest
0 голосов
/ 21 февраля 2019

Я пишу небольшую программу node.js, которая сможет воспроизводить звуковые файлы wav на выбранном аудиоустройстве.Звук запускается хорошо, но он останавливается до конца файла.

Вот мой код:

const fs = require("fs");
const wav = require("wav");
const portAudio = require("naudiodon");

const ao = new portAudio.AudioIO({
    outOptions: {
        channelCount: 2,
        sampleFormat: portAudio.SampleFormat24Bit,
        sampleRate: 44100,
    }
});

const name = "myfile.wav";
const file = fs.createReadStream(`./sounds/${name}`);

const reader = new wav.Reader();

reader.on("format", () => {
    reader.pipe(ao);
    ao.start();
});

file.pipe(reader);

process.on("SIGINT", ao.quit);

Когда я изменяю параметр highWaterMark fs.createReadStream, он немногоизмените положение обрезки в звуке, но оно никогда не дойдет до конца.Я всегда получаю portAudio status - output underflow ошибку журнала.

Спасибо за любую помощь!

...