/**
* @file track-button.js
*/
import MenuButton from '../menu/menu-button.js' ;
import Component from '../component.js' ;
import * as Fn from '../utils/fn.js' ;
/**
* Classe de base pour les boutons permettant d'activer des types de pistes spécifiques (par exemple, les sous-titres).
*
* @extends MenuButton
*/
class TrackButton extends MenuButton {
/**
* 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) {
const tracks = options.tracks ;
super(player, options) ;
if (this.items.length <= 1) {
this.hide() ;
}
if (!tracks) {
retour ;
}
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) ;
exporter le TrackButton par défaut ;