![](/img/trans.png)
[英]node.js child_process spawn stdout lower highWaterMark
[英]Node JS spawn of child_process
我正在生成一个命令来播放带有mpg123
的音频 stream ,效果很好。 我也公开了一种杀死进程的方法,它也很有效,但我不知道如何从上述命令中获取 output。
在子进程stdout
上没有触发任何事件,按照它应该工作的文档进行 - 这里可能是什么问题?
我发现的一种解决方案是将spawn
的stdio
属性设置为inherit
,但随后spawn
返回 null,这并不理想,因为我无法创建句柄来稍后杀死它。
我在节点 10.24 的 Pi Zero 上运行它。
export const streamFactory = (cb: (data: string) => void) => {
try {
const st = spawn("mpg123", [configManager.getStreamUrl()]);
st.stdout.on("data", (data) => {
console.log(data);
cb(data);
});
return {
close: () => {
st.kill("SIGINT");
},
};
} catch (e) {
console.log(e);
}
};
出于某种原因, mpg123
将其数据输出到stderr
,而不是stdout
。 使开关像魅力一样工作,go 图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.