我添加了控制声音平移的功能,但我无法将所有声音都放入单个缓冲通道。现在我在 github https://mdn.github.io/webaudio-examples/stereo-panner-node/上找到了一个项目。这个 github 项目的主要问题是虽然它几乎可以在所有设备上运行,但它只播放一种声音。我尝试使用 queryselectorall 对其进行修改,以使其能够处理我网站上的所有噪音,但没有运气。
var audioCtx;
var myAudio = document.querySelectorAll("audio");
var panControl = document.querySelector('.panning-control');
var panValue = document.querySelector('.panning-value');
audioCtx = new window.AudioContext();
var panNode = audioCtx.createStereoPanner();
for (var i = 0; i < myAudio.length; i++)
{
source = audioCtx.createMediaElementSource(myAudio[i]);
source.connect(panNode);
}
panNode.connect(audioCtx.destination);
panControl.oninput = function() {
panNode.pan.value = panControl.value;
}
上面的代码是我修改后的代码。它平移所有音频,但仅适用于有限数量的设备,尤其不适用于手机。当我在某些设备上添加修改后的代码时,没有声音来自音频。帮助我将多个声音添加到单个缓冲区通道中,以便我可以添加平移功能以通过单个滑块/搜索器控制所有声音。
您的帮助将不胜感激。