mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
MediaSession API DOM bindings
This commit is contained in:
parent
7da8d75a7e
commit
4b5b4d19bf
6 changed files with 262 additions and 0 deletions
30
components/script/dom/webidls/MediaMetadata.webidl
Normal file
30
components/script/dom/webidls/MediaMetadata.webidl
Normal file
|
@ -0,0 +1,30 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://w3c.github.io/mediasession/#mediametadata
|
||||
*/
|
||||
|
||||
dictionary MediaImage {
|
||||
required USVString src;
|
||||
DOMString sizes = "";
|
||||
DOMString type = "";
|
||||
};
|
||||
|
||||
[Exposed=Window,
|
||||
Constructor(optional MediaMetadataInit init = {})]
|
||||
interface MediaMetadata {
|
||||
attribute DOMString title;
|
||||
attribute DOMString artist;
|
||||
attribute DOMString album;
|
||||
// TODO: https://github.com/servo/servo/issues/10072
|
||||
// attribute FrozenArray<MediaImage> artwork;
|
||||
};
|
||||
|
||||
dictionary MediaMetadataInit {
|
||||
DOMString title = "";
|
||||
DOMString artist = "";
|
||||
DOMString album = "";
|
||||
sequence<MediaImage> artwork = [];
|
||||
};
|
57
components/script/dom/webidls/MediaSession.webidl
Normal file
57
components/script/dom/webidls/MediaSession.webidl
Normal file
|
@ -0,0 +1,57 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://w3c.github.io/mediasession/#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"
|
||||
};
|
||||
|
||||
dictionary MediaSessionActionDetails {
|
||||
required MediaSessionAction action;
|
||||
};
|
||||
|
||||
dictionary MediaSessionSeekActionDetails : MediaSessionActionDetails {
|
||||
double? seekOffset;
|
||||
};
|
||||
|
||||
dictionary MediaSessionSeekToActionDetails : MediaSessionActionDetails {
|
||||
required double seekTime;
|
||||
boolean? fastSeek;
|
||||
};
|
||||
|
||||
callback MediaSessionActionHandler = void(MediaSessionActionDetails details);
|
||||
|
||||
[Exposed=Window]
|
||||
interface MediaSession {
|
||||
attribute MediaMetadata? metadata;
|
||||
|
||||
attribute MediaSessionPlaybackState playbackState;
|
||||
|
||||
void setActionHandler(MediaSessionAction action, MediaSessionActionHandler? handler);
|
||||
|
||||
//void setPositionState(optional MediaPositionState? state);
|
||||
};
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue