BaseAudioContext.createGain()
The createGain()
method of the BaseAudioContext
interface creates a GainNode
, which can be used to control the overall gain (or volume) of the audio graph.
Note: The GainNode()
constructor is the recommended way to create a GainNode
; see Creating an AudioNode.
Syntax
var gainNode = AudioContext.createGain();
Return value
A GainNode
which takes as input one or more audio sources and outputs audio whose volume has been adjusted in gain (volume) to a level specified by the node's GainNode.gain
a-rate parameter.
Example
The following example shows basic usage of an AudioContext
to create a GainNode
, which is then used to mute and unmute the audio when a Mute button is clicked by changing the gain
property value.
The below snippet wouldn't work as is — for a complete working example, check out our Voice-change-O-matic demo (view source.)
<div> <button class="mute">Mute button</button> </div>
var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); var gainNode = audioCtx.createGain(); var mute = document.querySelector('.mute'); var source; if (navigator.mediaDevices.getUserMedia) { navigator.mediaDevices.getUserMedia ( // constraints - only audio needed for this app { audio: true }, // Success callback function(stream) { source = audioCtx.createMediaStreamSource(stream); }, // Error callback function(err) { console.log('The following gUM error occurred: ' + err); } ); } else { console.log('getUserMedia not supported on your browser!'); } source.connect(gainNode); gainNode.connect(audioCtx.destination); ... mute.onclick = voiceMute; function voiceMute() { if(mute.id == "") { // 0 means mute. If you still hear something, make sure you haven't // connected your source into the output in addition to using the GainNode. gainNode.gain.setValueAtTime(0, audioCtx.currentTime); mute.id = "activated"; mute.textContent = "Unmute"; } else { gainNode.gain.setValueAtTime(1, audioCtx.currentTime); mute.id = ""; mute.textContent = "Mute"; } }
Specifications
Specification |
---|
Web Audio API # dom-baseaudiocontext-creategain |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
createGain |
14 |
12 |
25 |
No |
15 |
6 |
≤37 |
18 |
25 |
14 |
6 |
1.0 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createGain