77 lines
1.6 KiB
Text
77 lines
1.6 KiB
Text
[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"
|
|
};
|
|
|
|
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 = {});
|
|
|
|
undefined setMicrophoneActive(boolean active);
|
|
|
|
undefined setCameraActive(boolean active);
|
|
};
|
|
|
|
[Exposed=Window]
|
|
interface MediaMetadata {
|
|
constructor(optional MediaMetadataInit init = {});
|
|
attribute DOMString title;
|
|
attribute DOMString artist;
|
|
attribute DOMString album;
|
|
attribute FrozenArray<MediaImage> artwork;
|
|
};
|
|
|
|
dictionary MediaMetadataInit {
|
|
DOMString title = "";
|
|
DOMString artist = "";
|
|
DOMString album = "";
|
|
sequence<MediaImage> artwork = [];
|
|
};
|
|
|
|
dictionary MediaImage {
|
|
required USVString src;
|
|
DOMString sizes = "";
|
|
DOMString type = "";
|
|
};
|
|
|
|
dictionary MediaPositionState {
|
|
double duration;
|
|
double playbackRate;
|
|
double position;
|
|
};
|
|
|
|
dictionary MediaSessionActionDetails {
|
|
required MediaSessionAction action;
|
|
double? seekOffset;
|
|
double? seekTime;
|
|
boolean? fastSeek;
|
|
};
|