/**
* @Datei wiedergabe-rate-menu-item.js
* /
import MenuItem from '../../menu/menu-item.js';
importiere Komponente aus '../../component.js';
/**
* Der spezifische Menüpunkttyp für die Auswahl einer Wiedergaberate.
*
* @extends MenuItem
* /
class PlaybackRateMenuItem extends MenuItem {
/**
* 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) {
const label = options.rate;
const rate = parseFloat(label, 10);
// Ändern Sie die Optionen für die Init der übergeordneten MenuItem-Klasse.
options.label = label;
options.selected = rate === player.playbackRate();
options.selectable = true;
options.multiSelectable = false;
super(Spieler, Optionen);
this.label = label;
this.rate = rate;
this.on(player, 'ratechange', (e) => this.update(e));
}
/**
* Diese Funktion wird aufgerufen, wenn ein `PlaybackRateMenuItem` angeklickt wird. Sehen
* {@link ClickableComponent} für genauere Informationen darüber, was ein Klick sein kann.
*
* @param {EventTarget~Event} [event]
* Das `Keydown`-, `Tap`- oder `Click`-Ereignis, das diese Funktion ausgelöst hat
* genannt.
*
* @listens tap
* @listens klicken
* /
handleClick(event) {
super.handleClick();
this.player().playbackRate(this.rate);
}
/**
* Aktualisieren Sie das PlaybackRateMenuItem, wenn sich die Wiedergaberate ändert.
*
* @param {EventTarget~Event} [event]
* Das Ereignis "Ratechange", das die Ausführung dieser Funktion ausgelöst hat.
*
* @listens Spieler#Ratenänderung
* /
update(event) {
this.selected(this.player().playbackRate() === this.rate);
}
}
/**
* Der Text, der über den Steuerelementen von `PlaybackRateMenuItem` angezeigt werden soll. Für die Lokalisierung hinzugefügt.
*
* @Typ {String}
* @privat
* /
PlaybackRateMenuItem.prototype.contentElType = 'Schaltfläche';
Component.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
standardmäßig PlaybackRateMenuItem exportieren;