/**
* @Datei dauer-anzeige.js
* /
import TimeDisplay from './time-display';
importiere Komponente aus '../../component.js';
/**
* Zeigt die Dauer an
*
* @erweitert Komponente
* /
class DurationDisplay extends TimeDisplay {
/**
* Erzeugt eine Instanz dieser Klasse.
*
* @param {Player} Spieler
* Der `Player`, dem diese Klasse zugeordnet werden soll.
*
* @param {Object} [Optionen]
* Der Schlüssel/Wertspeicher der Playeroptionen.
* /
constructor(spieler, optionen) {
super(Spieler, Optionen);
const updateContent = (e) => this.updateContent(e);
// Wir wollen/müssen die Daueränderungen nicht drosseln,
// denn sie sollten die geänderte Dauer immer als
// es hat sich geändert
this.on(player, 'durationchange', updateContent);
// Hören Sie auf loadstart, da die Playerdauer zurückgesetzt wird, wenn ein neues Medienelement geladen wird,
// aber die Daueränderung auf dem Benutzeragenten wird nicht ausgelöst.
// @see [Spec]{@link https://www.w3.org/TR/2011/WD-html5-20110113/video.html#media-element-load-algorithm}
this.on(player, 'loadstart', updateContent);
// Achten Sie auch auf timeupdate (im übergeordneten System) und loadedmetadata, da das Entfernen dieser
// Hörer könnten abhängige Anwendungen/Bibliotheken beschädigt haben. Diese
// kann wahrscheinlich für 7.0 entfernt werden.
this.on(player, 'loadedmetadata', updateContent);
}
/**
* Erzeugt den Standard-DOM "Klassenname".
*
* @return {string}
* Der DOM `className` für dieses Objekt.
* /
buildCSSClass() {
return 'vjs-duration';
}
/**
* Aktualisieren Sie die Anzeige der Zeitdauer.
*
* @param {EventTarget~Event} [event]
* Das Ereignis `durationchange`, `timeupdate` oder `loadedmetadata`, das die
* diese Funktion aufgerufen werden soll.
*
* @listens Player#durationchange
* @listens Player#timeupdate
* @listens Player#loadedmetadata
* /
updateContent(event) {
const duration = this.player_.duration();
this.updateTextNode_(Dauer);
}
}
/**
* Der Text, der für Benutzer von Bildschirmlesegeräten zu `DurationDisplay` hinzugefügt wird.
*
* @Typ {String}
* @privat
* /
DurationDisplay.prototype.labelText_ = 'Dauer';
/**
* Der Text, der über den Steuerelementen von "DurationDisplay" angezeigt werden soll. Zugefügt für die Lokalisierung.
*
* @Typ {String}
* @privat
*
* @veraltet in v7; controlText_ wird in nicht aktiven Anzeigekomponenten nicht verwendet
* /
DurationDisplay.prototype.controlText_ = 'Dauer';
Component.registerComponent('DurationDisplay', DurationDisplay);
standardmäßig exportieren DurationDisplay;