/**
* @Datei play-progress-bar.js
* /
importiere Komponente aus '../../component.js';
importiere {IS_IOS, IS_ANDROID} aus '../../utils/browser.js';
import * as Fn from '../../utils/fn.js';
importieren './time-tooltip';
/**
* Wird von {@link SeekBar} verwendet, um den Fortschritt der Medienwiedergabe als Teil der
* {@link ProgressControl}.
*
* @erweitert Komponente
* /
class PlayProgressBar extends Component {
/**
* Erzeugt eine Instanz dieser Klasse.
*
* @param {Player} Spieler
* Der {@link Player}, dem diese Klasse zugeordnet werden soll.
*
* @param {Object} [Optionen]
* Der Schlüssel/Wertspeicher der Playeroptionen.
* /
constructor(spieler, optionen) {
super(Spieler, Optionen);
this.update = Fn.throttle(Fn.bind(this, this.update), Fn.UPDATE_REFRESH_INTERVAL);
}
/**
* Erstellen Sie das DOM-Element für diese Klasse.
*
* @return {Element}
* Das Element, das erstellt wurde.
* /
createEl() {
return super.createEl('div', {
className: 'vjs-play-progress vjs-slider-bar'
}, {
aria-hidden": "true
});
}
/**
* Stellt Aktualisierungen seines eigenen DOM sowie des DOM seiner
* {@link TimeTooltip} Kind.
*
* @param {Object} seekBarRect
* Der `ClientRect` für das Element {@link SeekBar}.
*
* @param {Nummer} seekBarPoint
* Eine Zahl von 0 bis 1, die einen horizontalen Bezugspunkt darstellt
* vom linken Rand der {@link SeekBar}
* /
update(seekBarRect, seekBarPoint) {
const timeTooltip = this.getChild('timeTooltip');
if (!timeTooltip) {
rückkehr;
}
const time = (this.player_.scrubbing()) ?
this.player_.getCache().currentTime :
this.player_.currentTime();
timeTooltip.updateTime(seekBarRect, seekBarPoint, time);
}
}
/**
* Standardoptionen für {@link PlayProgressBar}.
*
* @Typ {Objekt}
* @privat
* /
PlayProgressBar.prototype.options_ = {
kinder: []
};
// Zeit-Tooltips sollten einem Player auf mobilen Geräten nicht hinzugefügt werden
if (!IS_IOS && !IS_ANDROID) {
PlayProgressBar.prototype.options_.children.push('timeTooltip');
}
Component.registerComponent('PlayProgressBar', PlayProgressBar);
standard PlayProgressBar exportieren;