/**
* @file sub-caps-button.js
*/
從 './text-track-button.js' 導入 TextTrackButton;
從 '../../component.js' 導入組件;
從“./caption-settings-menu-item.js”導入 CaptionSettingsMenuItem;
從“./subs-caps-menu-item.js”導入 SubsCapsMenuItem;
從 '../../utils/string-cases.js' 導入 {toTitleCase};
/**
* 用於切換和選擇字幕和/或副標題的按鈕組件
*
* @extends 文本跟踪按鈕
*/
類 SubsCapsButton 擴展 TextTrackButton {
構造函數(播放器,選項= {}){
超級(播放器,選項);
// 雖然北美在大多數情況下使用“字幕”
// "captions and subtitles" 其他地區使用 "subtitles"
this.label_ = '字幕';
if (['en', 'en-us', 'en-ca', 'fr-ca'].indexOf(this.player_.language_) > -1) {
this.label_ = '字幕';
}
this.menuButton_.controlText(toTitleCase(this.label_));
}
/**
* 構建默認的 DOM `className`。
*
* @return {字符串}
* 此對象的 DOM `className`。
*/
buildCSSClass() {
返回`vjs-subs-caps-button ${super.buildCSSClass()}`;
}
buildWrapperCSSClass() {
返回`vjs-subs-caps-button ${super.buildWrapperCSSClass()}`;
}
/**
* 創建字幕/字幕菜單項
*
* @return {CaptionSettingsMenuItem[]}
* 當前菜單項的數組。
*/
創建項目(){
讓項目= [];
if (!(this.player().tech_ && this.player().tech_.featuresNativeTextTracks) &&
this.player().getChild('textTrackSettings')) {
items.push(new CaptionSettingsMenuItem(this.player_, {kind: this.label_}));
this.hideThreshold_ += 1;
}
items = super.createItems(items, SubsCapsMenuItem);
退換貨品;
}
}
/**
* `kind`s 的 TextTrack 來尋找它與這個菜單相關聯。
*
* @type {數組}
* @私人的
*/
SubsCapsButton.prototype.kinds_ = ['字幕', '字幕'];
/**
* 應顯示在 `SubsCapsButton` 控件上的文本。
*
*
* @type {字符串}
* @私人的
*/
SubsCapsButton.prototype.controlText_ = '字幕';
Component.registerComponent('SubsCapsButton', SubsCapsButton);
導出默認的 SubsCapsButton;