ladybird/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
Timothy Flynn d99a075ff9 LibWeb: Implement HTMLMediaElement.play
This also includes the HTMLMediaElement's list of pending play promises,
which is coupled pretty tightly with HTMLMediaElement.play.
2023-04-08 22:04:14 +02:00

45 lines
1.3 KiB
Text

#import <HTML/HTMLElement.idl>
#import <HTML/VideoTrackList.idl>
enum CanPlayTypeResult {
"",
"maybe",
"probably"
};
// https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement
[Exposed=Window]
interface HTMLMediaElement : HTMLElement {
// network state
[Reflect, CEReactions] attribute DOMString src;
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;
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;
// playback state
readonly attribute unrestricted double duration;
readonly attribute boolean paused;
[Reflect, CEReactions] attribute boolean autoplay;
[Reflect, CEReactions] attribute boolean loop;
Promise<undefined> play();
undefined pause();
// controls
[Reflect, CEReactions] attribute boolean controls;
// tracks
[SameObject] readonly attribute VideoTrackList videoTracks;
};