AudioParam: Methode setValueAtTime()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

Die Methode setValueAtTime() der AudioParam-Schnittstelle plant eine sofortige Änderung des AudioParam-Werts zu einem genauen Zeitpunkt, gemessen an AudioContext.currentTime. Der neue Wert wird im Parameter "value" angegeben.

Syntax

js
setValueAtTime(value, startTime)

Parameter

value

Eine Gleitkommazahl, die den Wert darstellt, zu dem AudioParam zu dem gegebenen Zeitpunkt geändert wird.

startTime

Ein Double, das die Zeit (in Sekunden) nach der Erstellung des AudioContext angibt, zu der die Wertänderung erfolgt. Wenn die Zeit kleiner ist als AudioContext.currentTime, erfolgt die Änderung sofort. Ein TypeError wird ausgelöst, wenn dieser Wert negativ ist.

Rückgabewert

Ein Verweis auf dieses AudioParam-Objekt. In einigen Browsern geben ältere Implementierungen dieser Schnittstelle undefined zurück.

Beispiele

Dieses einfache Beispiel zeigt eine Medienquellenkomponente mit zwei Steuerschaltflächen (siehe unser webaudio-examples-Repo für den Quellcode oder sehen Sie sich das Beispiel live an). Wenn die Schaltflächen gedrückt werden, wird die Variable currGain um 0,25 erhöht/verringert, und dann wird die Methode setValueAtTime() verwendet, um den Verstärkungswert auf currGain zu setzen, eine Sekunde von jetzt an (audioCtx.currentTime + 1).

js
// create audio context
const audioCtx = new AudioContext();

// set basic variables for example
const myAudio = document.querySelector("audio");
const pre = document.querySelector("pre");
const myScript = document.querySelector("script");

pre.textContent = myScript.textContent;

const targetAtTimePlus = document.querySelector(".set-target-at-time-plus");
const targetAtTimeMinus = document.querySelector(".set-target-at-time-minus");

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

// Create a gain node and set its gain value to 0.5
const gainNode = audioCtx.createGain();
gainNode.gain.value = 0.5;
let currGain = gainNode.gain.value;

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

// set buttons to do something onclick
targetAtTimePlus.onclick = () => {
  currGain += 0.25;
  gainNode.gain.setValueAtTime(currGain, audioCtx.currentTime + 1);
};

targetAtTimeMinus.onclick = () => {
  currGain -= 0.25;
  gainNode.gain.setValueAtTime(currGain, audioCtx.currentTime + 1);
};

Spezifikationen

Specification
Web Audio API
# dom-audioparam-setvalueattime

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
setValueAtTime

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch