/**
 * @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;