#import #import #import #import #import #import #import #import // 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 enum CanPlayTypeResult { "", "maybe", "probably" }; // https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement [Exposed=Window] interface HTMLMediaElement : HTMLElement { // error state readonly attribute MediaError? error; // network state [Reflect, CEReactions, URL] attribute USVString src; [FIXME] attribute MediaProvider? srcObject; readonly attribute USVString currentSrc; [Reflect=crossorigin, CEReactions, Enumerated=CORSSettingsAttribute] attribute DOMString? crossOrigin; 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; [Reflect, CEReactions, Enumerated=Preload] attribute DOMString preload; readonly attribute TimeRanges buffered; undefined load(); CanPlayTypeResult canPlayType(DOMString type); // 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; readonly attribute boolean seeking; // playback state attribute double currentTime; undefined fastSeek(double time); readonly attribute unrestricted double duration; [FIXME] object getStartDate(); readonly attribute boolean paused; [FIXME] attribute double defaultPlaybackRate; [FIXME] attribute double playbackRate; [FIXME] attribute boolean preservesPitch; [FIXME] readonly attribute TimeRanges played; [FIXME] readonly attribute TimeRanges seekable; readonly attribute boolean ended; [Reflect, CEReactions] attribute boolean autoplay; [Reflect, CEReactions] attribute boolean loop; Promise play(); undefined pause(); // controls [Reflect, CEReactions] attribute boolean controls; attribute double volume; attribute boolean muted; [Reflect=muted, CEReactions] attribute boolean defaultMuted; // tracks [SameObject] readonly attribute AudioTrackList audioTracks; [SameObject] readonly attribute VideoTrackList videoTracks; [SameObject] readonly attribute TextTrackList textTracks; TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = ""); };