首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AudioBuffer中修改JavaScript卷

在AudioBuffer中修改JavaScript卷
EN

Stack Overflow用户
提问于 2022-04-12 21:40:30
回答 1查看 75关注 0票数 0

如何修改javascript中的AudioBuffer卷?我只想修改AudioBuffer音量,不播放任何声音,也不使用任何增益。最后,我想要一个新的具有修改卷的AudioBuffer。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-12 23:00:33

假设您希望将现有AudioBuffer中的所有值乘以2,可以通过循环所有值来应用计算。

代码语言:javascript
复制
for (let channel = 0; channel < audioBuffer.numberOfChannels; channel += 1) {
    const channelData = audioBuffer.getChannelData(channel);

    for (let sample = 0; sample < channelData.length; sample += 1) {
        channelData[sample] *= 2;
    }
}

这将编辑所有适当的值。如果您想要将所有值复制到一个新的AudioBuffer中,您可以这样做。

代码语言:javascript
复制
const copiedAudioBuffer = new AudioBuffer({
    length: audioBuffer.length,
    numberOfChannels: audioBuffer.numberOfChannels,
    sampleRate: audioBuffer.sampleRate
});

for (let channel = 0; channel < audioBuffer.numberOfChannels; channel += 1) {
    const channelData = audioBuffer.getChannelData(channel);
    const copiedChannelData = copiedAudioBuffer.getChannelData(channel);

    for (let sample = 0; sample < channelData.length; sample += 1) {
        copiedChannelData[sample] = channelData[sample] * 2;
    }
}

上面的示例创建了一个AudioBuffer,其属性与现有属性完全相同。它将使现有的AudioBuffer保持不变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71849434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档