從 './track-enums' 導入 {VideoTrackKind};
從“./track”導入曲目;
從'../utils/merge-options'導入合併;
/**
* 單個“VideoTrack”的表示。
*
* @see [規範]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}
* @extends 軌道
*/
類 VideoTrack 擴展軌道 {
/**
* 創建此類的一個實例。
*
* @param {對象} [選項={}]
* 選項名稱和值的對象
*
* @param {string} [options.kind='']
* 一個有效的{@link VideoTrack~Kind}
*
* @param {string} [options.id='vjs_track_' + Guid.newGUID()]
* 此 AudioTrack 的唯一 ID。
*
* @param {string} [options.label='']
* 此軌道的菜單標籤。
*
* @param {string} [options.language='']
* 有效的雙字符語言代碼。
*
* @param {boolean} [options.selected]
* 如果此曲目是當前正在播放的曲目。
*/
構造函數(選項={}){
常量設置=合併(選項,{
種類:VideoTrackKind[選項.種類] || ''
});
超級(設置);
讓選擇=假;
/**
* @memberof VideoTrack
* @member {boolean} 選中
* 是否選擇了這個`VideoTrack`。設置時會
*如果選擇的狀態發生變化,則觸發{@link VideoTrack#selectedchange}。
* @實例
*
* @fires VideoTrack#selectedchange
*/
Object.defineProperty(this, 'selected', {
得到() {
返回選擇;
},
設置(新選擇){
// 無效或未更改的值
如果(類型新選擇!== '布爾' || 新選擇 === 已選擇){
返回;
}
選擇=新選擇;
/**
* 在此軌道上選擇更改時觸發的事件。這允許
* 保存此軌道以相應操作的 VideoTrackList。
*
* > 注意:這不是規範的一部分!原生曲目就可以了
* 這在內部沒有事件。
*
* @event VideoTrack#selectedchange
* @type {EventTarget~Event}
*/
this.trigger('selectedchange');
}
});
// 如果用戶將此軌道設置為選中則
// 否則將 selected 設置為真值
// 我們保持假
如果(設置。選擇){
this.selected = settings.selected;
}
}
}
導出默認 VideoTrack;