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 Audiotime-Stamp-Werte in Bezug auf den aktuellen audiellen Kontext enthält.
Die beiden Werte sind wie folgt:
AudioTimestamp.contextTime
: Die Zeit des Sample-Frames, das derzeit vom Audioausgabegerät wiedergegeben wird (d. h. Position des ausgegebenen Audiostreams), in denselben Einheiten und Ursprung wie dieAudioContext.currentTime
des Kontextes. Grundsätzlich ist dies die Zeit nach der ersten Erstellung des audiellen Kontexts.AudioTimestamp.performanceTime
: Eine Schätzung des Moments, in dem das Sample-Frame, das dem gespeichertencontextTime
-Wert entspricht, vom Audioausgabegerät wiedergegeben wurde, in denselben Einheiten und Ursprung wieperformance.now()
. Dies ist die Zeit, nachdem das Dokument, das den audiellen Kontext enthält, erstmals gerendert wurde.
Syntax
getOutputTimestamp()
Parameter
Keine.
Rückgabewert
Ein AudioTimestamp
-Objekt, das die folgenden Eigenschaften besitzt.
contextTime
: Ein Punkt im Zeitkoordinatensystem descurrentTime
für denBaseAudioContext
; die Zeit nach der ersten Erstellung des audiellen Kontexts.performanceTime
: Ein Punkt im Zeitkoordinatensystem einesPerformance
-Interfaces; die Zeit, nachdem das Dokument, das den audiellen Kontext enthält, erstmals gerendert wurde.
Beispiele
Im folgenden Code beginnen wir, eine Audiodatei abzuspielen, nachdem ein Play-Button geklickt wurde, und starten eine requestAnimationFrame
-Schleife, die kontinuierlich die contextTime
und performanceTime
ausgibt.
Sie können den vollständigen Code dieses Beispiels unter output-timestamp sehen (auch live sehen).
// Press the play button
playBtn.addEventListener("click", () => {
// We can create the audioCtx as there has been some user action
if (!audioCtx) {
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 |
Browser-Kompatibilität
BCD tables only load in the browser