// GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) // Source: Media Session (https://w3c.github.io/mediasession/) [Exposed=Window] partial interface Navigator { [SameObject] readonly attribute MediaSession mediaSession; }; enum MediaSessionPlaybackState { "none", "paused", "playing" }; enum MediaSessionAction { "play", "pause", "seekbackward", "seekforward", "previoustrack", "nexttrack", "skipad", "stop", "seekto", "togglemicrophone", "togglecamera", "hangup", "previousslide", "nextslide", "enterpictureinpicture" }; callback MediaSessionActionHandler = undefined(MediaSessionActionDetails details); [Exposed=Window] interface MediaSession { attribute MediaMetadata? metadata; attribute MediaSessionPlaybackState playbackState; undefined setActionHandler(MediaSessionAction action, MediaSessionActionHandler? handler); undefined setPositionState(optional MediaPositionState state = {}); Promise setMicrophoneActive(boolean active); Promise setCameraActive(boolean active); }; [Exposed=Window] interface MediaMetadata { constructor(optional MediaMetadataInit init = {}); attribute DOMString title; attribute DOMString artist; attribute DOMString album; attribute FrozenArray artwork; }; dictionary MediaMetadataInit { DOMString title = ""; DOMString artist = ""; DOMString album = ""; sequence artwork = []; }; dictionary MediaImage { required USVString src; DOMString sizes = ""; DOMString type = ""; }; dictionary MediaPositionState { unrestricted double duration; double playbackRate; double position; }; dictionary MediaSessionActionDetails { required MediaSessionAction action; }; dictionary MediaSessionSeekActionDetails : MediaSessionActionDetails { double seekOffset; }; dictionary MediaSessionSeekToActionDetails : MediaSessionActionDetails { required double seekTime; boolean fastSeek; }; dictionary MediaSessionCaptureActionDetails : MediaSessionActionDetails { boolean isActivating; };