Я пытаюсь создать mplayer как дочерний процесс, иногда с файлом для воспроизведения, а иногда с потоком для воспроизведения. Файл работает нормально, но когда я создаю поток из файла, я получаю эту ошибку:
events.js:85 бросить; // Необработанное событие «ошибка» ^ Ошибка: чтение ECONNRESET в exports._errnoException (util.js:746:11) в Pipe.onread (net.js:550:26)
Это не проблема с правами доступа к файлам, потому что я запускал ее как sudo, и у меня все еще была та же проблема.
Чтобы проверить потенциальную проблему с потоковой передачей, я создал поток записи из потока чтения, и это сработало без проблем.
Я не совсем уверен, что делать дальше. Буду признателен за любой совет или помощь.
Вот код:
var fs = require('fs');
var spawn = require('child_process').spawn;
var file = "/usr/local/apps/ha6/web/voice/ga.wav";
var file2 = "/usr/local/apps/ha6/web/voice/ga2.wav";
function filePlay() {
var mplayer = spawn("mplayer", ["-slave", file], {stdio: ['pipe', 'ignore', 'ignore']});
mplayer.on("exit", function () {
console.log("exit");
});
}
function streamPlay() {
var str = fs.createReadStream(file).on("error", function (error) {
console.log("Error creating read stream:" + error);
});
var mplayer = spawn("mplayer", ["-slave "], {stdio: ['pipe', 'ignore', 'ignore']}).on("error", function (error) {
console.log("Spawn error " + error);
});
str.pipe(mplayer.stdin);
}
function testPiping() {
var str = fs.createReadStream(file).on("error", function (error) {
console.log("Error creating read stream:" + error);
});
var str2 = fs.createWriteStream(file2).on("error", function(error) {
console.log("Error creating write stream:" + error);
});
str.pipe(str2);
console.log("Pipe a success!");
}
filePlay(); // works fine
testPiping(); // works fine
streamPlay(); // ECONNRESET error