importiere {AudioTrackKind} von './track-enums';
importiere Track von './track';
importiere merge von '../utils/merge-options';
/**
* Eine Darstellung eines einzelnen `AudioTracks`. Wenn er Teil einer {@link AudioTrackList} ist
* es wird jeweils nur ein `AudioTrack` in der Liste aktiviert.
*
* @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}
* @erweitert Spur
* /
class AudioTrack extends Track {
/**
* Erstellen Sie eine Instanz dieser Klasse.
*
* @param {Object} [options={}]
* Objekt der Optionsnamen und -werte
*
* @param {AudioTrack~Kind} [options.kind='']
* Eine gültige Audiospurart
*
* @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.enabled]
* Wenn dieser Titel derjenige ist, der gerade abgespielt wird. Wenn dieser Titel Teil von
* eine {@link AudioTrackList}, wird nur ein {@link AudioTrack} aktiviert.
* /
constructor(options = {}) {
const settings = merge(options, {
art: AudioTrackKind[options.kind] || ''
});
super(Einstellungen);
let enabled = false;
/**
* @Mitglied von AudioTrack
* @member {boolean} enabled
* Ob dieser `AudioTrack` aktiviert ist oder nicht. Bei dieser Einstellung wird
* feuern {@link AudioTrack#enabledchange}, wenn der Status von enabled geändert wird.
* @Instanz
*
* @fires VideoTrack#selectedchange
* /
Object.defineProperty(this, 'enabled', {
get() {
rückgabe aktiviert;
},
set(newEnabled) {
// ein ungültiger oder unveränderter Wert
if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {
rückkehr;
}
aktiviert = newEnabled;
/**
* Ein Ereignis, das ausgelöst wird, wenn sich die Aktivierung auf dieser Spur ändert. Dies ermöglicht
* die AudioTrackList, 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 AudioTrack#enabledchange
* @Typ {EventTarget~Event}
* /
this.trigger('enabledchange');
}
});
// Wenn der Benutzer diese Spur auf "ausgewählt" setzt, dann
// Ausgewählt auf diesen wahren Wert setzen sonst
// wir behalten es falsch
if (einstellungen.aktiviert) {
this.enabled = settings.enabled;
}
this.loaded_ = true;
}
}
standard-AudioTrack exportieren;