问题描述
我的服务器接收音频缓冲区的 udp 数据包。 我想将这些传入的数据块流式传输到 Google 的文本转语音 API。
使用 fs 流,是否有可能以类似这样的方式实现这一目标?:
let stream = fs.createReadStream("empty-file-name").pipe(myOutputStreamToAPI);
dgramserver.on('message',(msg,rinfo) => {
stream.push(msg)
}
在这个粗略的草图中,我会创建一个空的(可能的?)流,或者在第一个收到的数据包上创建流,随着更多的数据包进入,继续推送到流。
这可能吗?
还有什么办法可以达到我想要的结果?也就是说,在将可读流通过管道传输到可写流之后,我希望在不同的时间动态地添加到可读流中。
这个问题也可以这样问: 如何从动态传入的 udp 数据包中创建可读流?
谢谢
解决方法
这是否会给您答案
const Stream = require('stream')
const readableStream = new Stream.Readable()
const writableStream = new Stream.Writable()
writableStream._write = (chunk,encoding,next) => {
console.log(chunk.toString())
next()
}
readableStream.pipe(writableStream)
readableStream.push('ping!')
readableStream.push('pong!')
writableStream.end()