/**
* @file audio-track-button.js
*/
import TrackButton de '../track-button.js' ;
import Component from '../../component.js' ;
import AudioTrackMenuItem de './audio-track-menu-item.js' ;
/**
* La classe de base pour les boutons qui commutent des types spécifiques de {@link AudioTrack}.
*
* @extends TrackButton
*/
class AudioTrackButton extends TrackButton {
/**
* Crée une instance de cette classe.
*
* @param {Player} player
* Le `Player` auquel cette classe doit être attachée.
*
* @param {Objet} [options={}]
* La mémoire clé/valeur des options du lecteur.
*/
constructor(player, options = {}) {
options.tracks = player.audioTracks() ;
super(player, options) ;
}
/**
* Construit le DOM par défaut `className`.
*
* @return {string}
* Le `nom de classe` du DOM pour cet objet.
*/
buildCSSClass() {
return `vjs-audio-button ${super.buildCSSClass()}` ;
}
buildWrapperCSSClass() {
return `vjs-audio-button ${super.buildWrapperCSSClass()}` ;
}
/**
* Créer un élément de menu pour chaque piste audio
*
* @param {AudioTrackMenuItem[]} [items=[]]
* Un tableau d'éléments de menu existants à utiliser.
*
* @return {AudioTrackMenuItem[]}
* Un tableau d'éléments de menu
*/
createItems(items = []) {
// s'il n'y a qu'une seule piste audio, il est inutile de la montrer
this.hideThreshold_ = 1 ;
const tracks = this.player_.audioTracks() ;
for (let i = 0 ; i < tracks.length ; i++) {
const track = tracks[i] ;
items.push(new AudioTrackMenuItem(this.player_, {
la voie ferrée,
// L'élément de menu est sélectionnable
sélectionnable : true,
// L'élément de menu n'est PAS multi-sélectionnable (c'est-à-dire qu'un seul élément peut être marqué comme "sélectionné" à la fois)
multiSelectable : false
})) ;
}
les articles de retour ;
}
}
/**
* Le texte qui doit s'afficher au-dessus des contrôles `AudioTrackButton`. Ajouté pour la localisation.
*
* @type {string}
* @private
*/
AudioTrackButton.prototype.controlText_ = 'Audio Track' ;
Component.registerComponent('AudioTrackButton', AudioTrackButton) ;
exporter le bouton AudioTrackButton par défaut ;