【发布时间】:2020-04-29 03:44:41
【问题描述】:
我有一个奇怪的问题。我正在使用网络音频播放来自服务器的流。我这样做的方式如下:
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;
这很好用。 如果我在我的电脑上播放流,我没有任何问题。
如果我在我的 Windows 8 平板电脑(相同的 Chrome 版本)上播放相同的流,我的音频中有很多点击声音。一秒钟内有多个。 它有点接缝,在每个缓冲区的末端我听到咔哒声。
我不明白区别...我能找到的唯一区别是我的计算机上声卡的采样率为 44100,而平板电脑上的采样率为 48000。
传输的流在 44100 中,我没有任何采样率问题。只是点击的声音。
有人知道为什么会这样吗?
谢谢, 代谢
【问题讨论】: