我有一个网络音频播放器从websocket获取实时音频数据 . 我正在尝试调试一些音频问题,我想在收到后立即从websocket中保存二进制数据,并在使用 audioContext.decodeAudioData
解码后立即保存 . 例如
var ax = new window.AudioContext;
var ws = new WebSocket(ip);
ws.binaryType = 'arraybuffer';
ws.onmessage = function(event){
// save data as binary to a file
saveToFile(event.data);
// decode audio and save as binary to a file
ax.decodeAudioData(event.data, function(audio){
saveToFile(audio);
});
};
我在这里尝试过其他SO问题的一些东西,但是使用我认为正在工作的这种方法(因为检查生成的文件显示了WAV头信息),文件实际上似乎充满了垃圾 .
这是我在 ws.onmessage
处理程序中调用的"binary dump"函数 .
binaryString += String.fromCharCode.apply(null, new Uint8Array(binary));
我还没有为_1715712做这个 .
-
String.fromCharCode.apply(null, new Uint8Array(binary))
是将原始二进制数据从websocketevent.data
转储到文件中的合适方法吗? -
如果不是我可以使用的其他方法?