/**
* @file audio-track-button.js
* /
importar TrackButton desde '../track-button.js';
importar componente desde '../../component.js';
importar AudioTrackMenuItem desde './audio-track-menu-item.js';
/**
* La clase base para los botones que alternan tipos específicos de {@link AudioTrack}.
*
* @extiende TrackButton
* /
clase AudioTrackButton extiende TrackButton {
/**
* Crea una instancia de esta clase.
*
* @param {Jugador} jugador
* El `Jugador` al que se debe adjuntar esta clase.
*
* @param {Objeto} [opciones={}]
* El almacén de clave/valor de las opciones del jugador.
* /
constructor(jugador, opciones = {}) {
options.tracks = player.audioTracks();
super(jugador, opciones);
}
/**
* Construye el DOM predeterminado `className`.
*
* @return {cadena}
* El DOM `className` para este objeto.
* /
construirClaseCSS() {
devuelve `vjs-audio-button ${super.buildCSSClass()}`;
}
buildWrapperCSSClass() {
devuelve `vjs-audio-button ${super.buildWrapperCSSClass()}`;
}
/**
* Crear un elemento de menú para cada pista de audio
*
* @param {AudioTrackMenuItem[]} [elementos=[]]
* Una matriz de elementos de menú existentes para usar.
*
* @return {AudioTrackMenuItem[]}
* Una variedad de elementos de menú
* /
createItems(elementos = []) {
// si solo hay una pista de audio, no tiene sentido mostrarla
este.hideThreshold_ = 1;
const pistas = this.player_.audioTracks();
para (sea i = 0; i < pistas.longitud; i++) {
const pista = pistas[i];
items.push(nuevo AudioTrackMenuItem(this.player_, {
pista,
// MenuItem es seleccionable
seleccionable: verdadero,
// MenuItem NO es multiseleccionable (es decir, solo uno puede marcarse como "seleccionado" a la vez)
multiseleccionable: falso
}));
}
devolver los artículos;
}
}
/**
* El texto que debería mostrarse sobre los controles `AudioTrackButton`s. Añadido para la localización.
*
* @tipo {cadena}
* @privado
* /
AudioTrackButton.prototype.controlText_ = 'Pista de audio';
Component.registerComponent('AudioTrackButton', AudioTrackButton);
exportar botón de pista de audio predeterminado;