AudioWorkletGlobalScope: currentTime-Eigenschaft

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 schreibgeschützte currentTime-Eigenschaft der AudioWorkletGlobalScope-Schnittstelle gibt einen Double-Wert zurück, der die sich ständig erhöhende Kontextzeit des verarbeiteten Audioblocks darstellt. Sie entspricht der currentTime-Eigenschaft des BaseAudioContext, zu dem der Worklet gehört.

Wert

Eine Gleitkommazahl, die die Zeit repräsentiert.

Beispiele

Der AudioWorkletProcessor hat Zugriff auf die spezifischen Eigenschaften des AudioWorkletGlobalScope:

js
// AudioWorkletProcessor defined in : test-processor.js
class TestProcessor extends AudioWorkletProcessor {
  constructor() {
    super();

    // Logs the current sample-frame and time at the moment of instantiation.
    // They are accessible from the AudioWorkletGlobalScope.
    console.log(currentFrame);
    console.log(currentTime);
  }

  // The process method is required - output silence,
  // which the outputs are already filled with.
  process(inputs, outputs, parameters) {
    return true;
  }
}

// Logs the sample rate, that is not going to change ever,
// because it's a read-only property of a BaseAudioContext
// and is set only during its instantiation.
console.log(sampleRate);

// You can declare any variables and use them in your processors
// for example it may be an ArrayBuffer with a wavetable.
const usefulVariable = 42;
console.log(usefulVariable);

registerProcessor("test-processor", TestProcessor);

Das Hauptskript lädt den Prozessor, erstellt eine Instanz von AudioWorkletNode, übergibt den Namen des Prozessors an ihn und verbindet den Knoten mit einem Audiographen. Wir sollten die Ausgabe von console.log()-Aufrufen in der Konsole sehen:

js
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const testNode = new AudioWorkletNode(audioContext, "test-processor");
testNode.connect(audioContext.destination);

Spezifikationen

Specification
Web Audio API
# dom-audioworkletglobalscope-currenttime

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch