MediaSession: setPositionState() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die setPositionState()
-Methode der
MediaSession
-Schnittstelle wird verwendet, um die aktuelle Medienwiedergabeposition und -geschwindigkeit des Dokuments zu aktualisieren, damit diese von der Benutzerumgebung in jeglicher Art von Schnittstelle präsentiert werden kann, die Details über laufende Medien bereitstellt. Dies kann besonders nützlich sein, wenn Ihr Code einen Player für Medientypen implementiert, die vom Browser nicht direkt unterstützt werden.
Rufen Sie diese Methode am navigator
-Objekt, genauer am mediaSession
-Objekt auf.
Syntax
setPositionState()
setPositionState(stateDict)
Parameter
stateDict
Optional-
Ein Objekt, das aktualisierte Informationen über die Wiedergabeposition und -geschwindigkeit der laufenden Medien des Dokuments bereitstellt. Ist das Objekt leer, werden die vorhandenen Wiedergabezustandsinformationen gelöscht. Dieses Objekt kann die folgenden Parameter enthalten:
duration
Optional-
Ein Fließkommawert, der die Gesamtdauer der aktuellen Medien in Sekunden angibt. Dies sollte immer eine positive Zahl sein, wobei positive Unendlichkeit (
Infinity
) Medien ohne definiertes Ende kennzeichnet, wie z.B. einen Livestream. playbackRate
Optional-
Ein Fließkommawert, der das Verhältnis angibt, mit dem die Medien im Vergleich zur normalen Wiedergabegeschwindigkeit abgespielt werden. Ein Wert von 1 gibt die normale Geschwindigkeit an, 2 die doppelte Geschwindigkeit, usw. Negative Werte zeigen an, dass die Medien rückwärts abgespielt werden; -1 bedeutet normale Geschwindigkeit, aber rückwärts; -2 ist doppelte Geschwindigkeit rückwärts, und so weiter.
position
Optional-
Ein Fließkommawert, der die zuletzt gemeldete Wiedergabeposition der Medien in Sekunden angibt. Dies muss immer ein positiver Wert sein.
Rückgabewert
Keiner (undefined
).
Ausnahmen
TypeError
-
Dieser Fehler kann in verschiedenen Umständen auftreten:
- Die angegebene
duration
des Objekts fehlt, ist negativ odernull
. - Seine
position
ist entweder negativ oder größer alsduration
. - Seine
playbackRate
ist null.
- Die angegebene
Beispiele
Unten ist eine Funktion, die den Positionszustand des aktuellen
MediaSession
-Tracks aktualisiert.
function updatePositionState() {
navigator.mediaSession.setPositionState({
duration: audioEl.duration,
playbackRate: audioEl.playbackRate,
position: audioEl.currentTime,
});
}
Wir können diese Funktion verwenden, wenn wir MediaMetadata
aktualisieren und innerhalb von Rückrufen für Aktionen, wie unten gezeigt.
navigator.mediaSession.setActionHandler("seekbackward", (details) => {
// our time to skip
const skipTime = details.seekOffset || 10;
// set our position
audioEl.currentTime = Math.max(audioEl.currentTime - skipTime, 0);
updatePositionState();
});
Spezifikationen
Specification |
---|
Media Session # dom-mediasession-setpositionstate |