/**
 * @file audio-track-button.js
 */
'../track-button.js'에서 TrackButton 가져오기;
'../../component.js'에서 컴포넌트 가져오기;
'./audio-track-menu-item.js'에서 AudioTrackMenuItem 가져오기;

/**
 * 특정 {@link AudioTrack} 유형을 전환하는 버튼의 기본 클래스입니다.
 *
 * @extends 트랙버튼
 */
클래스 AudioTrackButton은 TrackButton {를 확장합니다.

  /**
   * 이 클래스의 인스턴스를 만듭니다.
   *
   * @param {플레이어} 플레이어
   * 이 클래스가 연결되어야 하는 `Player`.
   *
   * @param {객체} [옵션={}]
   * 플레이어 옵션의 키/값 저장소.
   */
  생성자(플레이어, 옵션 = {}) {
    options.tracks = player.audioTracks();

    super(플레이어, 옵션);
  }

  /**
   * 기본 DOM `className`을 빌드합니다.
   *
   * @return {문자열}
   * 이 개체의 DOM `className`입니다.
   */
  buildCSSClass() {
    `vjs-audio-button ${super.buildCSSClass()}` 반환;
  }

  buildWrapperCSSClass() {
    `vjs-audio-button ${super.buildWrapperCSSClass()}` 반환;
  }

  /**
   * 각 오디오 트랙에 대한 메뉴 항목 만들기
   *
   * @param {AudioTrackMenuItem[]} [항목=[]]
   * 사용할 기존 메뉴 항목의 배열입니다.
   *
   * @return {AudioTrackMenuItem[]}
   * 메뉴 항목의 배열
   */
  createItems(항목 = []) {
    // 오디오 트랙이 하나만 있는 경우 표시할 필요가 없습니다.
    this.hideThreshold_ = 1;

    const 트랙 = this.player_.audioTracks();

    에 대한 (하자 i = 0; i < 트랙.길이; i++) {
      const 트랙 = 트랙[i];

      items.push(new AudioTrackMenuItem(this.player_, {
        길,
        // MenuItem을 선택할 수 있습니다.
        선택 가능: 참,
        // MenuItem은 multiSelectable이 아닙니다(즉, 한 번에 하나만 "선택됨"으로 표시할 수 있음).
        다중 선택 가능: 거짓
      }));
    }

    항목을 반환;
  }
}

/**
 * `AudioTrackButton` 컨트롤 위에 표시되어야 하는 텍스트입니다. 현지화를 위해 추가되었습니다.
 *
 * @유형 {문자열}
 * @사적인
 */
AudioTrackButton.prototype.controlText_ = '오디오 트랙';
Component.registerComponent('AudioTrackButton', AudioTrackButton);
기본 AudioTrackButton 내보내기;