Skip to content

Instantly share code, notes, and snippets.

@imbcmdth
Last active October 31, 2016 20:04
Show Gist options
  • Save imbcmdth/25d57ccff30073a3f72b4cf731699d09 to your computer and use it in GitHub Desktop.
Save imbcmdth/25d57ccff30073a3f72b4cf731699d09 to your computer and use it in GitHub Desktop.
enum CanPlayTypeEnum { "" /* empty string */, "maybe", "probably" };

interface HTMLMediaElement : HTMLElement {
  // error state
  readonly attribute MediaError? error;
  // network state
           attribute DOMString src;
  readonly attribute DOMString currentSrc;
           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;
           attribute DOMString preload;
  readonly attribute TimeRanges buffered;
  void load();
  CanPlayTypeEnum 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;
  readonly attribute unrestricted double duration;
  Date getStartDate();
  readonly attribute boolean paused;
           attribute double defaultPlaybackRate;
           attribute double playbackRate;
  readonly attribute TimeRanges played;
  readonly attribute TimeRanges seekable;
  readonly attribute boolean ended;
           attribute boolean autoplay;
           attribute boolean loop;
  void play();
  void pause();
  // media controller
           attribute DOMString mediaGroup;
           attribute MediaController? controller;
  // controls
           attribute boolean controls;
           attribute double volume;
           attribute boolean muted;
           attribute boolean defaultMuted;
  // quality levels for ABR sources
  readonly attribute QualityLevelList? qualityLevels;
  // tracks
  readonly attribute AudioTrackList audioTracks;
  readonly attribute VideoTrackList videoTracks;
  readonly attribute TextTrackList textTracks;
  TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
};

Quality Levels:

interface QualityLevelList : EventTarget {
  readonly attribute unsigned long length;
  getter QualityLevel (unsigned long index);
  QualityLevel? getQualityLevelById(DOMString id);
  readonly attribute long selectedIndex;
           attribute EventHandler onchange;
           attribute EventHandler onaddqualitylevel;
           attribute EventHandler onremovequalitylevel;
};

interface QualityLevel {
  readonly attribute DOMString id;
  readonly attribute DOMString label;
  readonly attribute long? width;
  readonly attribute long? height;
  readonly attribute long bitrate;
           attribute boolean enabled;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment