2023-06-12 13:52:30 -04:00
|
|
|
#import <HTML/AudioTrackList.idl>
|
2022-02-15 22:40:51 +03:30
|
|
|
#import <HTML/HTMLElement.idl>
|
2023-04-22 14:44:33 -04:00
|
|
|
#import <HTML/MediaError.idl>
|
2024-07-25 20:23:15 +01:00
|
|
|
#import <HTML/TextTrack.idl>
|
2024-07-05 20:24:41 +01:00
|
|
|
#import <HTML/TextTrackList.idl>
|
2023-04-18 16:22:34 -04:00
|
|
|
#import <HTML/TimeRanges.idl>
|
2023-04-04 14:14:33 -04:00
|
|
|
#import <HTML/VideoTrackList.idl>
|
2023-11-05 01:48:01 +01:00
|
|
|
#import <HTML/Scripting/Fetching.idl>
|
2022-02-15 22:40:51 +03:30
|
|
|
|
2024-08-12 15:07:15 +02:00
|
|
|
// https://html.spec.whatwg.org/multipage/media.html#attr-media-preload
|
|
|
|
[MissingValueDefault=metadata, InvalidValueDefault=metadata]
|
|
|
|
enum Preload {
|
|
|
|
"auto",
|
|
|
|
"none",
|
|
|
|
"metadata"
|
|
|
|
};
|
|
|
|
|
|
|
|
// https://html.spec.whatwg.org/multipage/media.html#canplaytyperesult
|
2022-03-04 18:49:30 +01:00
|
|
|
enum CanPlayTypeResult {
|
|
|
|
"",
|
|
|
|
"maybe",
|
|
|
|
"probably"
|
|
|
|
};
|
|
|
|
|
2022-10-07 16:45:09 -06:00
|
|
|
// https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement
|
2023-09-03 16:18:30 +12:00
|
|
|
[Exposed=Window]
|
2020-08-01 03:05:43 +01:00
|
|
|
interface HTMLMediaElement : HTMLElement {
|
|
|
|
|
2023-04-22 14:44:33 -04:00
|
|
|
// error state
|
|
|
|
readonly attribute MediaError? error;
|
|
|
|
|
2023-04-03 11:11:18 -04:00
|
|
|
// network state
|
2024-08-08 10:35:57 +01:00
|
|
|
[Reflect, CEReactions, URL] attribute USVString src;
|
2024-05-19 14:15:49 +01:00
|
|
|
[FIXME] attribute MediaProvider? srcObject;
|
2023-04-19 06:44:40 -04:00
|
|
|
readonly attribute USVString currentSrc;
|
2023-11-05 01:48:01 +01:00
|
|
|
[Reflect=crossorigin, CEReactions, Enumerated=CORSSettingsAttribute] attribute DOMString? crossOrigin;
|
2023-04-03 11:11:18 -04:00
|
|
|
const unsigned short NETWORK_EMPTY = 0;
|
|
|
|
const unsigned short NETWORK_IDLE = 1;
|
|
|
|
const unsigned short NETWORK_LOADING = 2;
|
|
|
|
const unsigned short NETWORK_NO_SOURCE = 3;
|
|
|
|
readonly attribute unsigned short networkState;
|
2024-08-12 15:07:15 +02:00
|
|
|
[Reflect, CEReactions, Enumerated=Preload] attribute DOMString preload;
|
2023-04-18 16:22:34 -04:00
|
|
|
readonly attribute TimeRanges buffered;
|
2023-04-04 15:12:40 -04:00
|
|
|
undefined load();
|
|
|
|
CanPlayTypeResult canPlayType(DOMString type);
|
2020-08-01 03:05:43 +01:00
|
|
|
|
2023-04-04 15:41:09 -04:00
|
|
|
// ready state
|
|
|
|
const unsigned short HAVE_NOTHING = 0;
|
|
|
|
const unsigned short HAVE_METADATA = 1;
|
|
|
|
const unsigned short HAVE_CURRENT_DATA = 2;
|
|
|
|
const unsigned short HAVE_FUTURE_DATA = 3;
|
|
|
|
const unsigned short HAVE_ENOUGH_DATA = 4;
|
|
|
|
readonly attribute unsigned short readyState;
|
2023-04-11 18:37:00 -04:00
|
|
|
readonly attribute boolean seeking;
|
2023-04-04 15:41:09 -04:00
|
|
|
|
2023-04-04 15:12:40 -04:00
|
|
|
// playback state
|
2023-04-10 10:07:23 -04:00
|
|
|
attribute double currentTime;
|
2023-04-23 16:17:01 -04:00
|
|
|
undefined fastSeek(double time);
|
2023-04-04 15:12:40 -04:00
|
|
|
readonly attribute unrestricted double duration;
|
2024-05-21 16:40:32 +01:00
|
|
|
[FIXME] object getStartDate();
|
2023-04-07 11:10:57 -04:00
|
|
|
readonly attribute boolean paused;
|
2025-02-09 01:42:50 +01:00
|
|
|
attribute double defaultPlaybackRate;
|
|
|
|
attribute double playbackRate;
|
2024-05-19 14:15:49 +01:00
|
|
|
[FIXME] attribute boolean preservesPitch;
|
2025-02-14 11:22:01 +01:00
|
|
|
readonly attribute TimeRanges played;
|
2025-02-14 11:22:12 +01:00
|
|
|
readonly attribute TimeRanges seekable;
|
2023-04-10 20:04:46 -04:00
|
|
|
readonly attribute boolean ended;
|
2023-03-01 01:45:18 +00:00
|
|
|
[Reflect, CEReactions] attribute boolean autoplay;
|
|
|
|
[Reflect, CEReactions] attribute boolean loop;
|
2023-04-07 12:52:41 -04:00
|
|
|
Promise<undefined> play();
|
2023-04-04 15:12:40 -04:00
|
|
|
undefined pause();
|
2020-11-09 08:15:10 +00:00
|
|
|
|
2023-04-04 15:12:40 -04:00
|
|
|
// controls
|
2023-03-01 01:45:18 +00:00
|
|
|
[Reflect, CEReactions] attribute boolean controls;
|
2023-06-14 13:07:09 -04:00
|
|
|
attribute double volume;
|
|
|
|
attribute boolean muted;
|
|
|
|
[Reflect=muted, CEReactions] attribute boolean defaultMuted;
|
2020-11-09 08:15:10 +00:00
|
|
|
|
2023-04-04 14:14:33 -04:00
|
|
|
// tracks
|
2023-06-12 13:52:30 -04:00
|
|
|
[SameObject] readonly attribute AudioTrackList audioTracks;
|
2023-04-04 14:14:33 -04:00
|
|
|
[SameObject] readonly attribute VideoTrackList videoTracks;
|
2024-07-05 20:24:41 +01:00
|
|
|
[SameObject] readonly attribute TextTrackList textTracks;
|
2024-07-25 20:23:15 +01:00
|
|
|
TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
|
2023-10-25 17:26:24 +02:00
|
|
|
|
2020-12-09 21:26:42 +00:00
|
|
|
};
|