The MediaSession
method setPositionState()
is used to update the current document's media playback position and speed for presentation by user's device in any kind of interface that provides details about ongoing media. This can be particularly useful if your code implements a player for type of media not directly supported by the browser.
Call this method on the navigator
object's mediaSession
object.
setPositionState()
setPositionState(stateDict)
Below is a function which updates the position state of the current MediaSession
track.
function updatePositionState() {
navigator.mediaSession.setPositionState({
duration: audioEl.duration,
playbackRate: audioEl.playbackRate,
position: audioEl.currentTime,
});
}
We can use this function when updating media session
metadata
and within callbacks for actions, such as below.
navigator.mediaSession.setActionHandler("seekbackward", (details) => {
const skipTime = details.seekOffset || 10;
audioEl.currentTime = Math.max(audioEl.currentTime - skipTime, 0);
updatePositionState();
});