gpt4 book ai didi

node.js - 如何桥接字节数组和音频流?

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:30 24 4
gpt4 key购买 nike

我正在为我的流媒体应用程序创建一个中继服务器。基本上,它应该像这样工作:

  1. 客户端 A 通过套接字将麦克风音频流式传输到服务器
  2. 服务器 a 获取流并可能将其临时存储在某个地方?(不确定)
  3. 客户端 B 从服务器获取流并播放。

基本上,我已经完成了第一部分(将麦克风音频发送到服务器):

while(isStreaming)
{
minBufSize = recorder.read(buffer, 0, buffer.length);
mSocket.emit("stream", Arrays.toString(buffer));
}

第三部分完成,简单地播放音频:

mediaplayer.reset();
mediaplayer.setDataSource("http://192.168.1.2:1337/stream");
mediaplayer.prepare();
mediaplayer.start();

现在我不确定如何桥接传入的字节数组和流。这是我当前的服务器代码:

var ms = require('mediaserver');
// from server to Client B
exports.letsStream = function(req, res, next) {
ms.pipe(req, res, "sample_song_music_file.mp3");
};

// from Client A to server
exports.handleSocketConnection = function(socket)
{
console.log("connected");
socket.on('stream', function(data)
{
var bytes = JSON.parse(data);
console.log("GETTING STREAM:" + bytes);
});
}

有什么建议吗?如何直接流式传输该字节数组?

最佳答案

mediaserver模块仅支持流式传输现有音频,而不是“实时”流。这行不通。

实现这三个任务的一种方法是:

  1. https://www.npmjs.com/package/microphone以字节流的形式读取麦克风音频。
  2. http://binaryjs.com/处理通过 websockets 将字节流传输到服务器,然后发送到客户端。如果您设置了两条单独的路径,一条用于发送数据,一条用于接收。将数据从一个流发送到另一个流。
  3. 使用https://github.com/TooTallNate/node-speaker在客户端 B 上播放传入的 PCM 数据流

关于node.js - 如何桥接字节数组和音频流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30558771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com