如何修改javascript中的AudioBuffer卷?我只想修改AudioBuffer音量,不播放任何声音,也不使用任何增益。最后,我想要一个新的具有修改卷的AudioBuffer。
发布于 2022-04-12 23:00:33
假设您希望将现有AudioBuffer中的所有值乘以2,可以通过循环所有值来应用计算。
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中,您可以这样做。
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保持不变。
https://stackoverflow.com/questions/71849434
复制相似问题