Spec-Zone.ru › Web APIs

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

См. также

  • Использование API Web Audio

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API