javascript - 如何合并两个 channel 的原始pcm数据?

标签 javascript audio ffmpeg pcm typed-arrays

我有两个 Float32Array,其中包含左右声道的原始 pcm 数据。是否可以创建结合两个 channel 的 Float32Array?如果是这样,我该怎么做?我可以简单地连接数组吗?

干杯!

最佳答案

要将两个 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];
    }
}

关于javascript - 如何合并两个 channel 的原始pcm数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56116438/

相关文章:

javascript - 使原始的 Angular 表单控件变脏

swift - UIAlertController 快速管理系统声音

c# - unity “Can not play a disabled audio source”

linux - Bash:单引号/双引号中的变量扩展

linux - 如何使用 ffmpeg 从不断被覆盖的单个图像文件中创建视频?

ffmpeg - 在 UWP 中转码视频

javascript - javascript 中的事件不起作用

javascript - 如何从 bool 对象创建新数组

javascript - Plotly - 我想根据条件用不同的颜色为每个 X 轴值着色

java - 如何在Java中查找已安装的支持耳机端口的Mixer