/**
* @Datei beschreibungen-button.js
* /
importieren Sie TextTrackButton aus './text-track-button.js';
importiere Komponente aus '../../component.js';
import * as Fn from '../../utils/fn.js';
/**
* Die Schaltflächenkomponente zum Umschalten und Auswählen von Beschreibungen
*
* @erweitert TextTrackButton
* /
class DescriptionsButton extends TextTrackButton {
/**
* 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.
*
* @param {Component~ReadyCallback} [ready]
* Die Funktion, die aufgerufen wird, wenn diese Komponente bereit ist.
* /
constructor(player, options, ready) {
super(Spieler, Optionen, bereit);
const tracks = player.textTracks();
const changeHandler = Fn.bind(this, this.handleTracksChange);
tracks.addEventListener('change', changeHandler);
this.on('dispose', function() {
tracks.removeEventListener('change', changeHandler);
});
}
/**
* Wechsel der Textspur handhaben
*
* @param {EventTarget~Event} event
* Das Ereignis, das diese Funktion ausgelöst hat
*
* @listens TextTrackList#ändern
* /
handleTracksChange(event) {
const tracks = this.player().textTracks();
let disabled = false;
// Prüfen, ob eine Spur anderer Art angezeigt wird
for (let i = 0, l = tracks.length; i < l; i++) {
const track = tracks[i];
if (track.kind !== this.kind_ && track.mode === 'showing') {
deaktiviert = wahr;
pause;
}
}
// Wenn ein anderer Titel angezeigt wird, deaktivieren Sie diese Menüschaltfläche
wenn (deaktiviert) {
this.disable();
} else {
this.enable();
}
}
/**
* Erzeugt den Standard-DOM "Klassenname".
*
* @return {string}
* Der DOM `className` für dieses Objekt.
* /
buildCSSClass() {
return `vjs-descriptions-button ${super.buildCSSClass()}`;
}
buildWrapperCSSClass() {
return `vjs-descriptions-button ${super.buildWrapperCSSClass()}`;
}
}
/**
* art" von TextTrack, nach dem gesucht werden soll, um ihn mit diesem Menü zu verknüpfen.
*
* @Typ {String}
* @privat
* /
DescriptionsButton.prototype.kind_ = 'Beschreibungen';
/**
* Der Text, der über den "DescriptionsButton"-Steuerelementen angezeigt werden soll. Für die Lokalisierung hinzugefügt.
*
* @Typ {String}
* @privat
* /
DescriptionsButton.prototype.controlText_ = 'Beschreibungen';
Component.registerComponent('DescriptionsButton', DescriptionsButton);
standardmäßig DescriptionsButton exportieren;