/**
* @file live-display.js
*/
從 '../component' 導入組件;
import * as Dom from '../utils/dom.js';
從“全局/文檔”導入文檔;
// TODO - Future 讓它點擊捕捉到生活
/**
* 持續時間為 Infinity 時顯示實時指示器。
*
* @extends 組件
*/
類 LiveDisplay 擴展組件 {
/**
* 創建此類的一個實例。
*
* @param {Player} 播放器
* 此類應附加到的 `Player`。
*
* @param {對象} [選項]
* 播放器選項的鍵/值存儲。
*/
構造函數(播放器,選項){
超級(播放器,選項);
這個.updateShowing();
this.on(this.player(), 'durationchange', (e) => this.updateShowing(e));
}
/**
* 創建 `Component` 的 DOM 元素
*
* @return {元素}
* 創建的元素。
*/
創建El() {
const el = super.createEl('div', {
className: 'vjs-live-control vjs-control'
});
this.contentEl_ = Dom.createEl('div', {
className: 'vjs-live-display'
},{
'aria-live':'關閉'
});
this.contentEl_.appendChild(Dom.createEl('span', {
className: 'vjs-control-text',
文本內容:`$ {這個。本地化('流類型')}\ u00a0`
}));
this.contentEl_.appendChild(document.createTextNode(this.localize('LIVE')));
el.appendChild(this.contentEl_);
返回 el;
}
處置(){
this.contentEl_ = null;
super.dispose();
}
/**
* 檢查持續時間以查看 LiveDisplay 是否應該顯示。然後顯示/隱藏
*相應地
*
* @param {EventTarget~Event} [事件]
* 導致此功能運行的 {@link Player#durationchange} 事件。
*
* @listens Player#durationchange
*/
更新顯示(事件){
如果 (this.player().duration() === Infinity) {
這個。顯示();
}其他{
這個。隱藏();
}
}
}
Component.registerComponent('LiveDisplay', LiveDisplay);
導出默認 LiveDisplay;