Controling audio balance (L/R) in Javascript

时间:2017-08-30 20:05:35

标签: javascript audio balance

I want to control the audio balance when I use this code

.uploadFile{
	height: auto;
	padding: 30px;
	background-color: #E0DDDD;
	color: #797979;
}
#uploadBtn{
	display: none;
	width: auto;
}
.uploadButtonLabel{
	font-size:18px;
	padding: 10px 40px;
	border-style: none;
	margin-top: 10px;
	text-align: center;
}
.uploadButtonLabel:before{
	font-family: fontAwesome;
	content: "\f093";
	margin-right: 10px;
}
.uploadButtonLabel:hover{
	cursor: pointer;
}

and also when I play a local mp3 file. How can I do this?

1 个答案:

答案 0 :(得分:0)

使用StereoPannerNode

向链中添加createStereoPanner
spark.yarn.dist.files

现在您可以使用以下方式控制L / R.

var oscillator = audioCtx.createOscillator();
var panner = audioCtx.createStereoPanner();

oscillator.type = 'square';
oscillator.frequency.value = frequency;  // value in hertz
oscillator.connect(panner);              // connect audio source to panner
panner.connect(audioCtx.destination);    // connect panner to output
oscillator.start();

功能示例:



panner.pan.value = someValue;   // value in the range -1 (L) to 1 (R)

var audioCtx = new (AudioContext || webkitAudioContext)();
var oscillator = audioCtx.createOscillator();
var panner = audioCtx.createStereoPanner();

oscillator.type = 'square';
oscillator.frequency.value = 440; // value in hertz
oscillator.connect(panner);
panner.connect(audioCtx.destination);
oscillator.start();

document.querySelector("input").oninput = function() {
  panner.pan.value = +this.value; 
};

setInterval(function() {
  oscillator.frequency.value = Math.round(Math.random() * 10) * 400 + 200;
}, 100);