media-tracks
Version:
Polyfill audio and video tracks with renditions.
47 lines (46 loc) • 1.12 kB
JavaScript
import { selectedChanged } from "./video-track-list.js";
import { VideoRendition } from "./video-rendition.js";
import { addRendition, removeRendition } from "./video-rendition-list.js";
const VideoTrackKind = {
alternative: "alternative",
captions: "captions",
main: "main",
sign: "sign",
subtitles: "subtitles",
commentary: "commentary"
};
class VideoTrack {
id;
kind;
label = "";
language = "";
sourceBuffer;
#selected = false;
addRendition(src, width, height, codec, bitrate, frameRate) {
const rendition = new VideoRendition();
rendition.src = src;
rendition.width = width;
rendition.height = height;
rendition.frameRate = frameRate;
rendition.bitrate = bitrate;
rendition.codec = codec;
addRendition(this, rendition);
return rendition;
}
removeRendition(rendition) {
removeRendition(rendition);
}
get selected() {
return this.#selected;
}
set selected(val) {
if (this.#selected === val) return;
this.#selected = val;
if (val !== true) return;
selectedChanged(this);
}
}
export {
VideoTrack,
VideoTrackKind
};