/**
* @Datei text-track-button.js
* /
importiere TrackButton aus '../track-button.js';
importiere Komponente aus '../../component.js';
import TextTrackMenuItem from './text-track-menu-item.js';
import OffTextTrackMenuItem from './off-text-track-menu-item.js';
/**
* Die Basisklasse für Schaltflächen, die bestimmte Textspurtypen umschalten (z. B. Untertitel)
*
* @extends MenuButton
* /
class TextTrackButton extends TrackButton {
/**
* Erzeugt eine Instanz dieser Klasse.
*
* @param {Player} Spieler
* Der `Player`, dem diese Klasse zugeordnet werden soll.
*
* @param {Object} [options={}]
* Der Schlüssel/Wertspeicher der Playeroptionen.
* /
constructor(player, options = {}) {
options.tracks = player.textTracks();
super(Spieler, Optionen);
}
/**
* Erstellen Sie für jede Textspur einen Menüpunkt
*
* @param {TextTrackMenuItem[]} [items=[]]
* Vorhandenes Array von Elementen, die bei der Erstellung verwendet werden sollen
*
* @return {TextTrackMenuItem[]}
* Array von Menüpunkten, die erstellt wurden
* /
createItems(items = [], TrackMenuItem = TextTrackMenuItem) {
// Das Label überschreibt das Label [track] off
// Zur Lokalisierung von Bildunterschriften/Untertiteln verwendet
let label;
if (this.label_) {
label = "${this.label_} off";
}
// Hinzufügen eines OFF-Menüpunkts, um alle Titel auszuschalten
items.push(new OffTextTrackMenuItem(this.player_, {
kinds: this.kinds_,
kind: this.kind_,
Etikett
}));
this.hideThreshold_ += 1;
const tracks = this.player_.textTracks();
if (!Array.isArray(this.kinds_)) {
this.kinds_ = [this.kind_];
}
for (let i = 0; i < tracks.length; i++) {
const track = tracks[i];
// füge nur Spuren hinzu, die von geeigneter Art sind und eine Bezeichnung haben
if (this.kinds_.indexOf(track.kind) > -1) {
const item = new TrackMenuItem(this.player_, {
titel,
kinds: this.kinds_,
kind: this.kind_,
// MenuItem ist auswählbar
auswählbar: wahr,
// MenuItem ist NICHT mehrfach auswählbar (d.h. es kann jeweils nur einer als "ausgewählt" markiert werden)
multiSelectable: false
});
item.addClass(`vjs-${track.kind}-menu-item`);
items.push(item);
}
}
rücksendungen;
}
}
Component.registerComponent('TextTrackButton', TextTrackButton);
standard TextTrackButton exportieren;