AudioContext: getOutputTimestamp()-Methode
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 getOutputTimestamp()
-Methode des AudioContext
-Interfaces gibt ein neues AudioTimestamp
-Objekt zurück, das zwei Audio-Zeitstempelwerte in Bezug auf den aktuellen Audiokontext enthält.
Die beiden Werte sind wie folgt:
AudioTimestamp.contextTime
: Die Zeit des aktuell vom Audioausgabegerät gerenderten Sample-Frames (d.h. Position des Ausgangsaudiostreams), in denselben Einheiten und Ursprüngen wieAudioContext.currentTime
des Kontexts. Im Grunde ist dies die Zeit, nachdem der Audiokontext erstmals erstellt wurde.AudioTimestamp.performanceTime
: Eine Schätzung des Moments, an dem der Sample-Frame, der dem gespeichertencontextTime
-Wert entspricht, vom Audioausgabegerät gerendert wurde, in denselben Einheiten und Ursprüngen wieperformance.now()
. Dies ist die Zeit, nachdem das Dokument, das den Audiokontext enthält, erstmals gerendert wurde.
Syntax
getOutputTimestamp()
Parameter
Keine.
Rückgabewert
Ein AudioTimestamp
-Objekt, das die folgenden Eigenschaften hat.
contextTime
: Ein Punkt im Zeitkoordinatensystem voncurrentTime
für denBaseAudioContext
; die Zeit, nachdem der Audiokontext erstmals erstellt wurde.performanceTime
: Ein Punkt im Zeitkoordinatensystem einesPerformance
-Interfaces; die Zeit, nachdem das Dokument, das den Audiokontext enthält, erstmals gerendert wurde.
Beispiele
Im folgenden Code beginnen wir, eine Audiodatei abzuspielen, nachdem eine Abspieltaste geklickt wurde, und starten eine requestAnimationFrame
-Schleife, die ständig die Werte contextTime
und performanceTime
ausgibt.
Sie können den vollständigen Code dieses Beispiels bei output-timestamp sehen (siehe auch live).
// Press the play button
playBtn.addEventListener("click", () => {
// We can create the audioCtx as there has been some user action
audioCtx ??= new AudioContext();
source = new AudioBufferSourceNode(audioCtx);
getData();
source.start(0);
playBtn.disabled = true;
stopBtn.disabled = false;
rAF = requestAnimationFrame(outputTimestamps);
});
// Press the stop button
stopBtn.addEventListener("click", () => {
source.stop(0);
playBtn.disabled = false;
stopBtn.disabled = true;
cancelAnimationFrame(rAF);
});
// Helper function to output timestamps
function outputTimestamps() {
const ts = audioCtx.getOutputTimestamp();
output.textContent = `Context time: ${ts.contextTime} | Performance time: ${ts.performanceTime}`;
rAF = requestAnimationFrame(outputTimestamps); // Reregister itself
}
Spezifikationen
Specification |
---|
Web Audio API # dom-audiocontext-getoutputtimestamp |