MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

AudioContext.createDynamicsCompressor()

Metoda createDynamicsCompressor() interfejsu domxref("AudioContext") }} jest używana do utworzenia DynamicsCompressorNode, który może być zastosowany do dodawania kompresji na sygnał audio.

Kompresja zcisza najgłośniejsze fragmenty sygnału i podgłaśnia najcichsze. W rezultacie możemy uzyskać głośniejszy, bogatszy i pełniejszy dźwięk. Jest to szczególnie istotne w przypadku gier oraz aplikacji muzycznych, w których duża ilość dźwięków jest odtwarzana jednocześnie oraz tam, gdzie chcesz kontrolować poziom sygnału głównego i unikać zniekształceń sygnału wyjściowego audio.

Składnia

var audioCtx = new AudioContext();
var compressor = audioCtx.createDynamicsCompressor();

Zwracanie wartości funkcji (return)

DynamicsCompressorNode.

Przykład

Poniższy kod przedstawia przykład prostego zastosowania createDynamicsCompressor() w celu dodania kompresji do ścieżki dźwiękowej. Pełniejszy przykład znajdziesz klikając na nasz przykład podstawowego kompresora (zobacz kod źródłowy).

// utworzenie MediaElementAudioSourceNode
// wprowadzenie HTMLMediaElement
var source = audioCtx.createMediaElementSource(myAudio);

// utworzenie węzła kompresora (compressor node)
var compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.value = -50;
compressor.knee.value = 40;
compressor.ratio.value = 12;
compressor.reduction.value = -20;
compressor.attack.value = 0;
compressor.release.value = 0.25;

// podłączenie AudioBufferSourceNode do destynacji
source.connect(audioCtx.destination);

button.onclick = function() {
  var active = button.getAttribute('data-active');
  if(active == 'false') {
    button.setAttribute('data-active', 'true');
    button.innerHTML = 'Remove compression';

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

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

Specyfikacje

Specyfikacja Status Komentarz
Web Audio API
The definition of 'createDynamicsCompressor()' in that specification.
Working Draft  

Zgodność z przeglądarkami

Cecha Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Wsparcie podstawowe 10.0webkit (Yes) 25.0 (25.0)  No support 15.0webkit
22 (unprefixed)
6.0webkit
Cecha Android Edge Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Wsparcie podstawowe ? (Yes) 26.0 1.2 ? ? ? 33.0

Zobacz również

Autorzy i etykiety dokumentu

 Autorzy tej strony: drm404
 Ostatnia aktualizacja: drm404,