BaseAudioContext: метод createGain()
Базовая реализация Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с апреля 2021 года.
Метод createGain() интерфейса BaseAudioContext создаёт узел GainNode, который можно использовать для управления общим усилением (или громкостью) аудиографа.
Примечание: Рекомендуется использовать конструктор GainNode() для создания узла GainNode; см. Создание узла AudioNode.
Синтаксис
createGain()
Параметры
Нет.
Возвращаемое значение
Узел GainNode, который принимает на вход один или несколько аудиоисточников и выводит аудио с изменённой громкостью, установленной параметром узла GainNode.gain с параметром a-rate.
Примеры
Следующий пример демонстрирует базовое использование AudioContext для создания GainNode, который затем используется для отключения и включения звука при нажатии кнопки «Выключить звук», изменяя значение свойства gain.
Нижеприведённый фрагмент кода не будет работать как есть — для получения полного рабочего примера ознакомьтесь с нашим демонстрационным примером Voice-change-O-matic (посмотреть исходный код.)
<div> <button class="mute">Mute button</button> </div>
const audioCtx = new AudioContext();
const gainNode = audioCtx.createGain();
const mute = document.querySelector(".mute");
let source;
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(
// constraints - only audio needed for this app
{
audio: true,
},
// Success callback
(stream) => {
source = audioCtx.createMediaStreamSource(stream);
},
// Error callback
(err) => {
console.error(`The following gUM error occurred: ${err}`);
},
);
} else {
console.error("getUserMedia not supported on your browser!");
}
source.connect(gainNode);
gainNode.connect(audioCtx.destination);
// …
mute.onclick = () => {
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";
}
};
Спецификации
| Спецификация |
|---|
| Web Audio API # dom-baseaudiocontext-creategain |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createGain |
24 | 12 | 25 | 15 | 7 | 25 | 25 | 14 | 7 | 1.5 | ≤37 |
См. также
© 2005–2024 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