Spec-Zone.ru › Web APIs

BaseAudioContext: метод createDynamicsCompressor()

Базовая поддержка Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод createDynamicsCompressor() интерфейса BaseAudioContext используется для создания узла сжатия DynamicsCompressorNode, который можно использовать для применения сжатия к аудиосигналу.

Сжатие снижает громкость самых громких частей сигнала и увеличивает громкость самых тихих частей. В целом, это позволяет достичь более громкого, богатого и полного звука. Это особенно важно в играх и музыкальных приложениях, где одновременно воспроизводится большое количество отдельных звуков, где необходимо управлять общим уровнем сигнала и избежать клиппинга (искажения) аудиовыхода.

Примечание: Рекомендуется использовать конструктор DynamicsCompressorNode() для создания узла DynamicsCompressorNode; см. Создание аудиоузла.

Синтаксис

createDynamicsCompressor()

Параметры

Нет.

Возвращаемое значение

Узел DynamicsCompressorNode.

Примеры

Приведенный ниже код демонстрирует, как использовать createDynamicsCompressor() для добавления сжатия к аудиодорожке. Для более полного примера ознакомьтесь с нашим основным примером сжатия (посмотреть исходный код).

// Create a MediaElementAudioSourceNode
// Feed the HTMLMediaElement into it
const source = audioCtx.createMediaElementSource(myAudio);

// Create a compressor node
const compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.setValueAtTime(-50, audioCtx.currentTime);
compressor.knee.setValueAtTime(40, audioCtx.currentTime);
compressor.ratio.setValueAtTime(12, audioCtx.currentTime);
compressor.attack.setValueAtTime(0, audioCtx.currentTime);
compressor.release.setValueAtTime(0.25, audioCtx.currentTime);

// connect the AudioBufferSourceNode to the destination
source.connect(audioCtx.destination);

button.onclick = () => {
  const active = button.getAttribute("data-active");
  if (active === "false") {
    button.setAttribute("data-active", "true");
    button.textContent = "Remove compression";

    source.disconnect(audioCtx.destination);
    source.connect(compressor);
    compressor.connect(audioCtx.destination);
  } else if (active === "true") {
    button.setAttribute("data-active", "false");
    button.textContent = "Add compression";

    source.disconnect(compressor);
    compressor.disconnect(audioCtx.destination);
    source.connect(audioCtx.destination);
  }
};

Спецификации

Спецификация
Web Audio API
# dom-baseaudiocontext-createdynamicscompressor

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
createDynamicsCompressor 14 12 25 15 6 18 25 14 6 1.0 4.4.3

См. также

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

© 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/createDynamicsCompressor

Spec-Zone.ru

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