/**
* @文件持續時間-display.js
*/
從 './time-display' 導入 TimeDisplay;
從 '../../component.js' 導入組件;
/**
* 顯示持續時間
*
* @extends 組件
*/
類 DurationDisplay 擴展 TimeDisplay {
/**
* 創建此類的一個實例。
*
* @param {Player} 播放器
* 此類應附加到的 `Player`。
*
* @param {對象} [選項]
* 播放器選項的鍵/值存儲。
*/
構造函數(播放器,選項){
超級(播放器,選項);
const updateContent = (e) => this.updateContent(e);
// 我們不想/不需要限制持續時間的變化,
// 因為它們應該始終將更改後的持續時間顯示為
// 它已經改變了
this.on(player, 'durationchange', updateContent);
// 監聽 loadstart 因為播放器持續時間在加載新媒體元素時重置,
// 但用戶代理上的持續時間變化不會觸發。
// @see [規範]{@link https://www.w3.org/TR/2011/WD-html5-20110113/video.html#media-element-load-algorithm}
this.on(player, 'loadstart', updateContent);
// 還要監聽 timeupdate(在父級中)和 loadedmetadata,因為刪除了它們
// 監聽器可能破壞了依賴的應用程序/庫。這些
// 可能會在 7.0 中被移除。
this.on(player, 'loadedmetadata', updateContent);
}
/**
* 構建默認的 DOM `className`。
*
* @return {字符串}
* 此對象的 DOM `className`。
*/
buildCSSClass() {
返回“vjs持續時間”;
}
/**
*更新持續時間顯示。
*
* @param {EventTarget~Event} [事件]
* 導致的 `durationchange`、`timeupdate` 或 `loadedmetadata` 事件
* 要調用的函數。
*
* @listens Player#durationchange
* @listens Player#timeupdate
* @listens Player#loadedmetadata
*/
更新內容(事件){
const duration = this.player_.duration();
this.updateTextNode_(持續時間);
}
}
/**
* 為屏幕閱讀器用戶添加到 `DurationDisplay` 的文本。
*
* @type {字符串}
* @私人的
*/
DurationDisplay.prototype.labelText_ = '持續時間';
/**
* 應顯示在 `DurationDisplay` 控件上的文本。添加到本地化。
*
* @type {字符串}
* @私人的
*
* @在 v7 中已棄用; controlText_ 不用於非活動顯示組件
*/
DurationDisplay.prototype.controlText_ = '持續時間';
Component.registerComponent('DurationDisplay', DurationDisplay);
導出默認 DurationDisplay;