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