代码之家  ›  专栏  ›  技术社区  ›  Maxime Dupré

如何合并两个通道的原始pcm数据?

  •  0
  • Maxime Dupré  · 技术社区  · 7 年前

    我有两个 Float32Array s包含左右声道的原始pcm数据。有没有可能创建一个 浮动阵列 这两个频道都有?如果是,我该怎么做?我可以简单地连接数组吗?

    干杯

    0 回复  |  直到 7 年前
        1
  •  1
  •   Maxime Dupré    7 年前

    要将两个PCM文件(右通道和左通道)合并为一个,需要将它们交错:

    (L,1),(R,1),(L,2),(R,2),。。。,(L,n)、(R,n)

    代码如下所示:

    const interleavedChannelData = new Float32Array(leftChannelData.length + rightChannelData.length);
    
    for (let i = 0; i < interleavedChannelData.length; i += 1) {
        if (i % 2 === 0) {
            interleavedChannelData[i] = leftChannelData[i / 2];
        } else {
            interleavedChannelData[i] = rightChannelData[(i - 1) / 2];
        }
    }
    
    推荐文章