/**
* @file text-track-cue-list.js
*/
/**
* @typedef {對象} TextTrackCueList~TextTrackCue
*
* @property {字符串} ID
* 此文本軌道提示的唯一 ID
*
* @property {number} 開始時間
* 此文本軌道提示的開始時間
*
* @property {number} 結束時間
* 此文本軌道提示的結束時間
*
* @property {boolean} pauseOnExit
* 如果為真,則在到達結束時間時暫停。
*
* @see [規範]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}
*/
/**
* TextTrackCues 列表。
*
* @see [規範]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}
*/
類 TextTrackCueList {
/**
* 創建這個類的一個實例..
*
* @param {Array} 線索
* 要初始化的提示列表
*/
構造函數(提示){
TextTrackCueList.prototype.setCues_.call(this, cues);
/**
* @memberof TextTrackCueList
* @member {number} 長度
* TextTrackCueList 中 `TextTrackCue` 的當前數量。
* @實例
*/
Object.defineProperty(this, '長度', {
得到() {
返回 this.length_;
}
});
}
/**
* 此列表中提示的設置器。創建吸氣劑
* 提示的索引。
*
* @param {Array} 線索
* 要設置的一系列提示
*
* @私人的
*/
setCues_(提示){
const oldLength = this.length || 0;
讓我= 0;
const l = cues.length;
this.cues_ = 提示;
this.length_ = cues.length;
const defineProp = 函數(索引){
如果(!(「+ 在這個索引)){
Object.defineProperty(this, '' + index, {
得到() {
返回 this.cues_[index];
}
});
}
};
如果 (舊長度 < l) {
i = 舊長度;
對於(;我<我;我++){
defineProp.call(this, i);
}
}
}
/**
* 通過 id 獲取當前在 `TextTrackCueList` 中的 `TextTrackCue`。
*
* @param {string} id
* 應搜索的提示的 id。
*
* @return {TextTrackCueList~TextTrackCue|null}
* 如果沒有找到,則為單個提示或 null。
*/
getCueById(id) {
讓結果=空;
對於(讓我 = 0,升 = 這個。長度; < 我; 我 ++){
const cue = this[i];
如果(cue.id === id){
結果=提示;
休息;
}
}
返回結果;
}
}
導出默認的 TextTrackCueList;