importiere {VideoTrackKind} von './track-enums';
importiere Track von './track';
importiere merge von '../utils/merge-options';
/**
* Eine Darstellung eines einzelnen `VideoTracks`.
*
* @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}
* @erweitert Spur
* /
class VideoTrack extends Track {
/**
* Erstellen Sie eine Instanz dieser Klasse.
*
* @param {Object} [options={}]
* Objekt der Optionsnamen und -werte
*
* @param {string} [options.kind='']
* Eine gültige {@link VideoTrack~Kind}
*
* @param {string} [options.id='vjs_track_' + Guid.newGUID()]
* Eine eindeutige ID für diesen AudioTrack.
*
* @param {string} [options.label='']
* Die Menübezeichnung für diesen Titel.
*
* @param {string} [options.language='']
* Ein gültiger zweistelliger Sprachcode.
*
* @param {boolean} [options.selected]
* Wenn dieser Titel derjenige ist, der gerade abgespielt wird.
* /
constructor(options = {}) {
const settings = merge(options, {
art: VideoTrackKind[options.kind] || ''
});
super(Einstellungen);
let selected = false;
/**
* @Mitglied von VideoTrack
* @member {boolean} selected
* Ob diese "Videospur" ausgewählt ist oder nicht. Bei dieser Einstellung wird
* feuert {@link VideoTrack#selectedchange}, wenn sich der Status von selected geändert hat.
* @Instanz
*
* @fires VideoTrack#selectedchange
* /
Object.defineProperty(this, 'selected', {
get() {
ausgewählt zurückgeben;
},
set(newSelected) {
// ein ungültiger oder unveränderter Wert
if (typeof newSelected !== 'boolean' || newSelected === selected) {
rückkehr;
}
selected = newSelected;
/**
* Ein Ereignis, das ausgelöst wird, wenn sich die Auswahl auf dieser Spur ändert. Dies ermöglicht
* die VideoTrackList, die diesen Track enthält, um entsprechend zu handeln.
*
* > Anmerkung: Dies ist nicht Teil der Spezifikation! Einheimische Titel genügen
* dies intern ohne ein Ereignis.
*
* @event VideoTrack#selectedchange
* @Typ {EventTarget~Event}
* /
this.trigger('selectedchange');
}
});
// Wenn der Benutzer diese Spur auf "ausgewählt" setzt, dann
// Ausgewählt auf diesen wahren Wert setzen sonst
// wir behalten es falsch
if (einstellungen.ausgewählt) {
this.selected = settings.selected;
}
}
}
standard-VideoSpur exportieren;