Metoda setValueAtTime()
interfejsu AudioParam
odpowiada za precyzyjne przyporządkowanie nagłych zmian do wartości AudioParam
w określonym czasie względem AudioContext.currentTime
. Nowa wartość zostaje podana w wartości parametru.
Składnia
var AudioParam = AudioParam.setValueAtTime(value, startTime)
Parametry
- value
- Liczba zmiennoprzecinkowa reprezentująca wartość
AudioParam
przyporządkuje się do podanego czasu. - startTime
- Zmienna
double
reprezentująca czas (w sekundach) poAudioContext
została utworzona jako pierwsza, dzięki czemu dochodzi do zmiany wartości.TypeError
zostanie zwrócony, jeśli uzyskana wartość jest negatywna.
Zwracanie wartości funkcji (return)
Odnośnik do obiektu AudioParam
. W niektórych przeglądarkach wprowadzenie tego interfejsu zaskutkuje zwróceniem pustego typu danych (void
).
Przykłady
Ten stosunkowo prosty przykład zawiera źródło mediaelementu z dwiema kontrolkami (sprawdź kod źródłowy poprzez nasze repo audio-param lub zobacz przykład live). Jeśli kontrolki są wciśnięte, zmienna currGain
jest inkrementowana/dekrementowana o 0.25. Wówczas metoda setValueAtTime()
zostaje użyta do ustawienia wartości przedwzmacniacza (gain) jako równej currGain, jedną sekundę od teraz (audioCtx.currentTime + 1).
// utworzenie kontekstu audio
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
// podanie podstawowych zmiennych dla przykładu
var myAudio = document.querySelector('audio');
var pre = document.querySelector('pre');
var myScript = document.querySelector('script');
pre.innerHTML = myScript.innerHTML;
var targetAtTimePlus = document.querySelector('.set-target-at-time-plus');
var targetAtTimeMinus = document.querySelector('.set-target-at-time-minus');
// utworzenie MediaElementAudioSourceNode
// wprowadzenie HTMLMediaElement
var source = audioCtx.createMediaElementSource(myAudio);
// utworzenie parametrów przedwzmacniacza (gain node) i ustawienie wartości przedwzmacniacza na wartość 0.5
var gainNode = audioCtx.createGain();
gainNode.gain.value = 0.5;
var currGain = gainNode.gain.value;
// podłączenie AudioBufferSourceNode do gainNode
// oraz gainNode do destynacji
source.connect(gainNode);
gainNode.connect(audioCtx.destination);
// określenie, co ma się wykonać po kliknięciu
targetAtTimePlus.onclick = function() {
currGain += 0.25;
gainNode.gain.setValueAtTime(currGain, audioCtx.currentTime + 1);
}
targetAtTimeMinus.onclick = function() {
currGain -= 0.25;
gainNode.gain.setValueAtTime(currGain, audioCtx.currentTime + 1);
}
Specyfikacje
Specifikacja | Status | Komentarz |
---|---|---|
Web Audio API The definition of 'setValueAtTime' in that specification. |
Working Draft |