MediaSession: Methode setPositionState()
Die setPositionState()
-Methode des
MediaSession
-Interfaces wird verwendet, um die Medienwiedergabeposition und -geschwindigkeit des aktuellen Dokuments für die Präsentation durch das Gerät des Benutzers in jeder Art von Schnittstelle zu aktualisieren, 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 auf, das
mediaSession
-Objekt enthält.
Syntax
setPositionState()
setPositionState(stateDict)
Parameter
stateDict
Optional-
Ein Objekt, das aktualisierte Informationen über die Wiedergabeposition und -geschwindigkeit der laufenden Medien des Dokuments bereitstellt. Wenn das Objekt leer ist, werden die vorhandenen Wiedergabezustandsinformationen gelöscht. Dieses Objekt kann die folgenden Parameter enthalten:
duration
Optional-
Ein Gleitkommawert, der die Gesamtdauer der aktuellen Medien in Sekunden angibt. Dies sollte immer eine positive Zahl sein, wobei positiv unendlich (
Infinity
) für Medien ohne definiertes Ende steht, wie ein Live-Stream. playbackRate
Optional-
Ein Gleitkommawert, der die Geschwindigkeit angibt, mit der die Medien abgespielt werden, als Verhältnis relativ zu ihrer normalen Wiedergabegeschwindigkeit. Ein Wert von 1 bedeutet normale Geschwindigkeit, 2 doppelte Geschwindigkeit und so weiter. Negative Werte bedeuten, dass die Medien rückwärts abgespielt werden; -1 bedeutet Wiedergabe mit normaler Geschwindigkeit rückwärts, -2 doppelte Geschwindigkeit rückwärts und so weiter.
position
Optional-
Ein Gleitkommawert, 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 unter verschiedenen Umständen auftreten:
- Das angegebene Objekt hat
duration
nicht, ist negativ odernull
. position
ist entweder negativ oder größer alsduration
.playbackRate
ist null.
- Das angegebene Objekt hat
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 beim Aktualisieren von MediaMetadata
und innerhalb von Rückruffunktionen für Aktionen nutzen, wie im folgenden Beispiel.
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 |
Browser-Kompatibilität
BCD tables only load in the browser