/**
* @file play-progress-bar.js
*/
從 '../../component.js' 導入組件;
從 '../../utils/browser.js' 導入 {IS_IOS, IS_ANDROID};
從 '../../utils/fn.js' 導入 * 作為 Fn;
導入'./time-tooltip';
/**
* 由 {@link SeekBar} 用於顯示媒體播放進度,作為
* {@link ProgressControl}。
*
* @extends 組件
*/
類 PlayProgressBar 擴展組件 {
/**
* 創建此類的一個實例。
*
* @param {Player} 播放器
* 此類應附加到的 {@link Player}。
*
* @param {對象} [選項]
* 播放器選項的鍵/值存儲。
*/
構造函數(播放器,選項){
超級(播放器,選項);
this.update = Fn.throttle(Fn.bind(this, this.update), Fn.UPDATE_REFRESH_INTERVAL);
}
/**
* 為這個類創建DOM元素。
*
* @return {元素}
* 創建的元素。
*/
創建El() {
返回 super.createEl('div', {
className: 'vjs-play-progress vjs-slider-bar'
},{
'aria-hidden': 'true'
});
}
/**
* 排隊更新到它自己的 DOM 以及它的 DOM
* {@link TimeTooltip} 孩子。
*
* @param {Object} seekBarRect
* {@link SeekBar} 元素的 `ClientRect`。
*
* @param {number} seekBarPoint
* 0到1之間的數字,代表水平參考點
* 從 {@link SeekBar} 的左邊緣
*/
更新(seekBarRect,seekBarPoint){
const timeTooltip = this.getChild('timeTooltip');
如果(!timeTooltip){
返回;
}
const time = (this.player_.scrubbing()) ?
this.player_.getCache().currentTime :
this.player_.currentTime();
timeTooltip.updateTime(seekBarRect, seekBarPoint, 時間);
}
}
/**
* {@link PlayProgressBar} 的默認選項。
*
* @type {對象}
* @私人的
*/
PlayProgressBar.prototype.options_ = {
孩子們: []
};
// 時間工具提示不應添加到移動設備上的播放器
如果(!IS_IOS &&!IS_ANDROID){
PlayProgressBar.prototype.options_.children.push('timeTooltip');
}
Component.registerComponent('PlayProgressBar', PlayProgressBar);
導出默認播放進度條;