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);
}
};
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
См. также
© 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