AudioWorkletGlobalScope: currentFrame 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 currentFrame
-Eigenschaft der AudioWorkletGlobalScope
-Schnittstelle gibt ein Integer zurück, das den stetig zunehmenden aktuellen Sample-Frame des zu verarbeitenden Audio-Blocks darstellt. Es wird nach der Verarbeitung jedes Audio-Blocks um 128 (die Größe eines Render-Quantum) erhöht.
Wert
Eine ganze Zahl.
Beispiele
Der AudioWorkletProcessor
hat Zugriff auf die spezifischen Eigenschaften des AudioWorkletGlobalScope
:
// 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 Audio-Graph. Wir sollten die Ausgabe der console.log()
-Aufrufe in der Konsole sehen:
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-currentframe |
Browser-Kompatibilität
BCD tables only load in the browser