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.currentTimedes 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 voncurrentTimefü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> |
Browser-Kompatibilität
Loading…