Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 插座IO。创建Wav并发送响应。_Javascript_Node.js_Sockets_Audio_Socket.io - Fatal编程技术网

Javascript 插座IO。创建Wav并发送响应。

Javascript 插座IO。创建Wav并发送响应。,javascript,node.js,sockets,audio,socket.io,Javascript,Node.js,Sockets,Audio,Socket.io,我在node.js服务器中使用以下代码动态创建Wav文件: Wav.prototype.getWavInt16Array = function(buffer){ var intBuffer = new Int16Array(buffer.length + 23), tmp; intBuffer[0] = 0x4952; // "RI" intBuffer[1] = 0x4646; // "FF" intBuffer[2] = (2*buffer.length + 15) & 0x0

我在node.js服务器中使用以下代码动态创建Wav文件:

Wav.prototype.getWavInt16Array = function(buffer){

var intBuffer = new Int16Array(buffer.length + 23), tmp;

intBuffer[0] = 0x4952; // "RI"
intBuffer[1] = 0x4646; // "FF"

intBuffer[2] = (2*buffer.length + 15) & 0x0000ffff; // RIFF size
intBuffer[3] = ((2*buffer.length + 15) & 0xffff0000) >> 16; // RIFF size

intBuffer[4] = 0x4157; // "WA"
intBuffer[5] = 0x4556; // "VE"

intBuffer[6] = 0x6d66; // "fm"
intBuffer[7] = 0x2074; // "t "

intBuffer[8] = 0x0012; // fmt chunksize: 18
intBuffer[9] = 0x0000; //

intBuffer[10] = 0x0001; // format tag : 1 
intBuffer[11] = this._channels; // channels: 2

intBuffer[12] = this._sampleRate & 0x0000ffff; // sample per sec
intBuffer[13] = (this._sampleRate & 0xffff0000) >> 16; // sample per sec

intBuffer[14] = (2*this._channels*this._sampleRate) & 0x0000ffff; // byte per sec
intBuffer[15] = ((2*this._channels*this._sampleRate) & 0xffff0000) >> 16; // byte per sec

intBuffer[16] = 0x0004; // block align
intBuffer[17] = 0x0010; // bit per sample
intBuffer[18] = 0x0000; // cb size
intBuffer[19] = 0x6164; // "da"
intBuffer[20] = 0x6174; // "ta"
intBuffer[21] = (2*buffer.length) & 0x0000ffff; // data size[byte]
intBuffer[22] = ((2*buffer.length) & 0xffff0000) >> 16; // data size[byte]  

for (var i = 0; i < buffer.length; i++) {
    tmp = buffer[i];
    if (tmp >= 1) {
        intBuffer[i+23] = (1 << 15) - 1;
    }
    else if (tmp <= -1) {
        intBuffer[i+23] = -(1 << 15);
    }
    else {
        intBuffer[i+23] = Math.round(tmp * (1 << 15));
    }
}

return intBuffer;
};
如何将此wav发送到客户端? 我可以创建指向wav的url链接并只发送url吗?
但我不想在服务器上创建任何wav文件

您可以使客户端请求成为服务器上的URL,该URL将通过生成并发送此数据来响应,而无需将其写入任何实际文件。但是,您不能在客户端使用音频API生成它吗?为什么服务器必须这样做?这里没有理由使用WebSocket;普通HTTP就可以了