/**
* @file audio-track-button.js
*/
從 '../track-button.js' 導入 TrackButton;
從 '../../component.js' 導入組件;
從“./audio-track-menu-item.js”導入 AudioTrackMenuItem;
/**
* 切換特定 {@link AudioTrack} 類型的按鈕的基類。
*
* @extends TrackButton
*/
類 AudioTrackButton 擴展 TrackButton {
/**
* 創建此類的一個實例。
*
* @param {Player} 播放器
* 此類應附加到的 `Player`。
*
* @param {對象} [選項={}]
* 播放器選項的鍵/值存儲。
*/
構造函數(播放器,選項= {}){
options.tracks = player.audioTracks();
超級(播放器,選項);
}
/**
* 構建默認的 DOM `className`。
*
* @return {字符串}
* 此對象的 DOM `className`。
*/
buildCSSClass() {
返回`vjs-audio-button ${super.buildCSSClass()}`;
}
buildWrapperCSSClass() {
返回`vjs-audio-button ${super.buildWrapperCSSClass()}`;
}
/**
* 為每個音軌創建一個菜單項
*
* @param {AudioTrackMenuItem[]} [items=[]]
* 要使用的現有菜單項數組。
*
* @return {AudioTrackMenuItem[]}
* 菜單項數組
*/
創建項目(項目= []){
// 如果只有一個音軌,則沒有必要顯示它
this.hideThreshold_ = 1;
const tracks = this.player_.audioTracks();
對於(讓我 = 0; 我 < 跟踪。長度; 我 ++){
const track = tracks[i];
items.push(new AudioTrackMenuItem(this.player_, {
追踪,
// 菜單項是可選擇的
可選:真實,
// MenuItem 不是 multiSelectable(即一次只能將一個標記為“選中”)
多選:假
}));
}
退換貨品;
}
}
/**
* 應顯示在 `AudioTrackButton` 控件上的文本。添加本地化。
*
* @type {字符串}
* @私人的
*/
AudioTrackButton.prototype.controlText_ = '音軌';
Component.registerComponent('AudioTrackButton', AudioTrackButton);
導出默認 AudioTrackButton;