我正在制作一个应用程序,要从inputBuffer中获取麦克风数据,我想流式传输到另一个客户端并播放它.但是,我无法唤醒它.

我的录制/捕获工作正常,因此我将跳至代码的相关部分

function recorderProcess(e) {

var left = e.inputBuffer.getChannelData(0);

var convert = convertFloat32ToInt16(left);

window.stream.write(convert);

var src = window.URL.createObjectURL(lcm);

playsound(convert);

ss(socket).emit('file',convert, {size: src.size},currentgame);

ss.createBlobReadStream(convert).pipe(window.stream);

//ss.createReadStream(f).pipe(widnow.stream);

}

function playsound(raw) {

console.log("now playing a sound, that starts with", new Uint8Array(raw.slice(0, 10)));

context.decodeAudioData(raw, function (buffer) {

if (!buffer) {

console.error("failed to decode:", "buffer null");

return;

}

var source = context.createBufferSource();

source.buffer = buffer;

source.connect(context.destination);

source.start(0);

console.log("started...");

}, function (error) {

console.error("failed to decode:", error);

});

}

我能够使用float32toint16函数成功创建数组缓冲区,但是当我使用初始化声音函数时,出现错误“ null”,这意味着数组缓冲区将不会解码为音频流?其他人遇到过这个问题吗?我已经搜寻了互联网,但没有答案.我试图以这种方式玩游戏,因为最终我将在客户端之间流式传输,因此我将通过套接字发送arraybufer.

提前致谢.

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐