/**
* @Datei html-track-element.js
* /
import EventTarget from '../event-target';
import TextTrack from '../tracks/text-track';
/**
* @Mitglied von HTMLTrackElement
* @typedef {HTMLTrackElement~ReadyState}
* @enum {number}
* /
const NONE = 0;
const LOADING = 1;
const LOADED = 2;
const ERROR = 3;
/**
* Eine einzelne Spur, die im DOM dargestellt wird.
*
* @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}
* @extends EventTarget
* /
class HTMLTrackElement extends EventTarget {
/**
* Erstellen Sie eine Instanz dieser Klasse.
*
* @param {Object} options={}
* Objekt der Optionsnamen und -werte
*
* @param {Tech} options.tech
* Ein Verweis auf den Tech, dem dieses HTMLTrackElement gehört.
*
* @param {TextTrack~Kind} [options.kind='subtitles']
* Eine gültige Textspurart.
*
* @param {TextTrack~Mode} [options.mode='disabled']
* Ein gültiger Textspurmodus.
*
* @param {string} [options.id='vjs_track_' + Guid.newGUID()]
* Eine eindeutige ID für diesen TextTrack.
*
* @param {string} [options.label='']
* Die Menübezeichnung für diesen Titel.
*
* @param {string} [options.language='']
* Ein gültiger zweistelliger Sprachcode.
*
* @param {string} [options.srclang='']
* Ein gültiger zweistelliger Sprachcode. Eine alternative, aber depriorisierte
* version von `options.language`
*
* @param {string} [options.src]
* Eine Url zu TextTrack-Stichwörtern.
*
* @param {boolean} [options.default]
* Ob diese Spur standardmäßig ein- oder ausgeschaltet sein soll.
* /
constructor(options = {}) {
super();
let readyState;
const track = new TextTrack(options);
this.kind = track.kind;
this.src = track.src;
this.srclang = track.language;
this.label = track.label;
this.default = track.default;
Object.defineProperties(this, {
/**
* @Mitglied von HTMLTrackElement
* @member {HTMLTrackElement~ReadyState} readyState
* Der aktuelle Bereitschaftsstatus des Spurelements.
* @Instanz
* /
readyState: {
get() {
return readyState;
}
},
/**
* @Mitglied von HTMLTrackElement
* @member {TextTrack} track
* Das zugrunde liegende TextTrack-Objekt.
* @Instanz
*
* /
titel: {
get() {
rückweg;
}
}
});
readyState = NONE;
/**
* @listens TextTrack#loadeddata
* @feuert HTMLTrackElement#laden
* /
track.addEventListener('loadeddata', () => {
readyState = LOADED;
this.trigger({
typ: 'Last',
ziel: dies
});
});
}
}
HTMLTrackElement.prototype.allowedEvents_ = {
laden: 'load'
};
HTMLTrackElement.NONE = NONE;
HTMLTrackElement.LOADING = LOADING;
HTMLTrackElement.LOADED = LOADED;
HTMLTrackElement.ERROR = ERROR;
standard HTMLTrackElement exportieren;