在javascript中播放音频时更改左/右平衡
我知道html5音频的东西都很新,但是有没有办法改变声音的左/右平衡 大概是这样的:在javascript中播放音频时更改左/右平衡,javascript,html,html5-audio,Javascript,Html,Html5 Audio,我知道html5音频的东西都很新,但是有没有办法改变声音的左/右平衡 大概是这样的: var snd = new Audio("test.mp3"); snd.balance = -1; // only left snd.play(); 从2021年起,可以使用。更多信息。 原始答复: 目前,这是不受支持的 您可以查看w3c规范中支持的属性和方法。请注意,浏览器通常提供更多/更少或不同的内容。但在这种情况下:没有浏览器支持音频平衡更改 这可以通过音频Web API实现 有关如何使用音量和立
var snd = new Audio("test.mp3");
snd.balance = -1; // only left
snd.play();
从2021年起,可以使用。更多信息。
原始答复: 目前,这是不受支持的 您可以查看w3c规范中支持的属性和方法。请注意,浏览器通常提供更多/更少或不同的内容。但在这种情况下:没有浏览器支持音频平衡更改 这可以通过音频Web API实现
有关如何使用音量和立体声控件创建“音箱”的教程:
或者您可以在此处看到一个正在运行的演示:
附加示例
此答案使用StereoPannerNode
控制单个AudioNode
中的平衡。但是,如果您想分割音频并分别操纵每个频道(左/右),则需要ChannelSplitterNode
和ChannelMergerNode
。您可以在这里找到如何使用它们的完整示例:看来,html音频标记中根本不支持通道平衡。
<audio src="myCoolTrack.mp3"></audio>
// for legacy browsers
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioContext = new AudioContext();
// get the audio element
const audioElement = document.querySelector('audio');
// pass it into the audio context
const track = audioContext.createMediaElementSource(audioElement);
// default pan set to 0 - center
const stereoNode = new StereoPannerNode(audioContext, { pan: 0 });
// change the value of the balance by updating the pan value
stereoNode.pan.value = -1; // left
stereoNode.pan.value = 0; // center
stereoNode.pan.value = 1; // right
track.connect(stereoNode).connect(audioContext.destination);