我通过websockets发送立体声音频(WAV)并希望通过Web Audio Api播放。 Serversite技术是asp.net。 目前我有这个:
ws.onmessage = function(evt) {
var d2 = new DataView(evt.data);
var data = new Float32Array(d2.byteLength / Float32Array.BYTES_PER_ELEMENT);
for (var jj = 0; jj < data.length; ++jj) {
data[jj] = d2.getFloat32(jj * Float32Array.BYTES_PER_ELEMENT, true);
}
var buffer = context.createBuffer(1, data.length, 44100);
buffer.getChannelData(0).set(data);
source = context.createBufferSource();
source.buffer = buffer;
source.start(startTime);
source.connect(context.destination);
startTime += buffer.duration;
}
有了这个,我可以听到这首歌,但有很多噪音...我相信这可能是因为它是一个立体声文件,我只使用1个频道? 如果是的话,我怎么能用两个频道呢?我试了一些东西,但结果总是相同或更糟。
我还有另一个问题是理解为什么它与Float32Array一起使用?在我的第一种方法中,我使用了Uint8Array,因为我向客户端发送字节,所以我认为我需要Uint8Array来获取我发送的相同值。但是对于Uint8Array,我只是听到了声音中的噪音和声音。
感谢您的帮助!
最诚挚的问候, 代谢