Я пытаюсь запустить mplayer в качестве дочернего процесса, иногда с файлом для воспроизведения, а иногда и с потоком для воспроизведения. Файл работает нормально, но когда я создаю поток из файла, я получаю эту ошибку:Ошибка Node.js Отправка потока в Mplayer, отправка файла Works Fine
events.js: 85 throw er; // необработанное 'ошибка' событие ^ Ошибка: чтение 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
Спасибо. Я прочитал другие сообщения, но он не все нажал. Теперь я понимаю их и проблему после прочтения вашего объяснения. – swmcdonnell