/**
 * @file track-button.js
 */
從 '../menu/menu-button.js' 導入 MenuButton;
從 '../component.js' 導入組件;
從 '../utils/fn.js' 導入 * 作為 Fn;

/**
 * 切換特定軌道類型(例如字幕)的按鈕的基類。
 *
 * @extends 菜單按鈕
 */
類 TrackButton 擴展 MenuButton {

  /**
   * 創建此類的一個實例。
   *
   * @param {Player} 播放器
   * 此類應附加到的 `Player`。
   *
   * @param {對象} [選項]
   * 播放器選項的鍵/值存儲。
   */
  構造函數(播放器,選項){
    const tracks = options.tracks;

    超級(播放器,選項);

    如果 (this.items.length <= 1) {
      這個。隱藏();
    }

    如果(!曲目){
      返回;
    }

    const updateHandler = Fn.bind(this, this.update);

    tracks.addEventListener('removetrack', updateHandler);
    tracks.addEventListener('addtrack', updateHandler);
    tracks.addEventListener('labelchange', updateHandler);
    this.player_.on('ready', updateHandler);

    this.player_.on('dispose', function() {
      tracks.removeEventListener('removetrack', updateHandler);
      tracks.removeEventListener('addtrack', updateHandler);
      tracks.removeEventListener('labelchange', updateHandler);
    });
  }

}

Component.registerComponent('TrackButton', TrackButton);
導出默認 TrackButton;