/**
* @file buscar-para-vivir.js
* /
Importar botón desde '../botón';
importar componente desde '../componente';
importar * como Dom desde '../utils/dom.js';
/**
* Muestra el indicador en vivo cuando la duración es Infinito.
*
* Componente @extiende
* /
clase SeekToLive extiende Botón {
/**
* 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) {
super(jugador, opciones);
this.updateLiveEdgeStatus();
si (this.player_.liveTracker) {
this.updateLiveEdgeStatusHandler_ = (e) => this.updateLiveEdgeStatus(e);
this.on(this.player_.liveTracker, 'liveedgechange', this.updateLiveEdgeStatusHandler_);
}
}
/**
* Crear el elemento DOM del 'Componente'
*
* @return {Elemento}
* El elemento que se creó.
* /
crearEl() {
const el = super.createEl('boton', {
className: 'vjs-seek-to-live-control vjs-control'
});
this.textEl_ = Dom.createEl('span', {
className: 'vjs-buscar-a-texto-en-vivo',
contenido del texto: this.localize('LIVE')
}, {
'aria-oculto': 'verdadero'
});
el.appendChild(this.textEl_);
volver el;
}
/**
* Actualice el estado de este botón si estamos en el borde vivo
* O no
* /
actualizarLiveEdgeStatus() {
// por defecto en el borde vivo
if (!this.player_.liveTracker || this.player_.liveTracker.atLiveEdge()) {
this.setAttribute('aria-disabled', true);
this.addClass('vjs-en-live-edge');
this.controlText('Buscar vivir, actualmente reproduciendo en vivo');
} else {
this.setAttribute('aria-disabled', false);
this.removeClass('vjs-en-live-edge');
this.controlText('Buscar vivir, actualmente detrás de vivir');
}
}
/**
* Al hacer clic, acérquenos lo más posible al punto en vivo.
* Esto requiere que esperemos al próximo `live-seekable-change`
* evento que ocurrirá cada segundo de longitud de segmento.
* /
manejarClick() {
this.player_.liveTracker.seekToLiveEdge();
}
/**
* Deseche el elemento y deje de rastrear
* /
disponer () {
si (this.player_.liveTracker) {
this.off(this.player_.liveTracker, 'liveedgechange', this.updateLiveEdgeStatusHandler_);
}
this.textEl_ = null;
super.dispose();
}
}
SeekToLive.prototype.controlText_ = 'Buscar vivir, actualmente reproduciendo en vivo';
Component.registerComponent('SeekToLive', SeekToLive);
exportar SeekToLive predeterminado;