/**
* @file big-play-button.js
* /
importar botón desde './button.js';
importar componente desde './component.js';
importar {isPromise, silentPromise} desde './utils/promise';
importar * como navegador desde './utils/browser.js';
/ **
* El botón de reproducción inicial que se muestra antes de que se reproduzca el video. El ocultamiento de la
* `BigPlayButton` se realiza a través de CSS y estados `Player`.
*
* Botón @extiende
* /
clase BigPlayButton extiende Botón {
constructor(jugador, opciones) {
super(jugador, opciones);
this.mouseused_ = false;
this.on('mousedown', (e) => this.handleMouseDown(e));
}
/ **
* Construye el DOM predeterminado `className`.
*
* @return {cadena}
* El DOM `className` para este objeto. Siempre devuelve «vjs-big-play-button».
* /
construirClaseCSS() {
return 'vjs-big-play-button';
}
/ **
* Esto se llama cuando se "hace clic" en `BigPlayButton`. Ver {@link ClickableComponent}
* para obtener información más detallada sobre lo que puede ser un clic.
*
* @param {EventTarget~Evento} evento
* El evento `keydown`, `top` o `click` que hizo que esta función se desactivara
* llamado.
*
* @escucha toca
* @escucha clic
* /
handleClick(evento) {
const playPromise = this.player_.play();
// sale temprano si se hace clic con el mouse
si (este.mouseused_ && evento.clienteX && evento.clienteY) {
const sourceIsEncrypted = this.player_.usingPlugin('eme') &&
this.player_.eme.sessions &&
this.player_.eme.sessions.length > 0;
silencioPromesa(reproducirPromesa);
si (este.player_.tech(verdadero) &&
// Hemos observado un error en IE y Edge al reproducir contenido DRM donde
// llamar a .focus() en el elemento de video hace que el video se vuelva negro,
// asi lo evitamos en ese caso especifico
!((browser.IE_VERSION || browser.IS_EDGE) && sourceIsEncrypted)) {
this.player_.tech(verdadero).focus();
}
devolver;
}
const cb = this.player_.getChild('barra de control');
const playToggle = cb && cb.getChild('playToggle');
si (!jugar Alternar) {
this.player_.tech(verdadero).focus();
devolver;
}
const playFocus = () => jugarToggle.focus();
if (esPromesa(jugarPromesa)) {
playPromise.then(playFocus, () => {});
} else {
this.setTimeout(playFocus, 1);
}
}
handleKeyDown(evento) {
this.mouseused_ = false;
super.handleKeyDown(evento);
}
manejarRatónAbajo(evento) {
this.mouseused_ = true;
}
}
/ **
* El texto que debería mostrarse sobre los controles `BigPlayButton`s. Añadido a para la localización.
*
* @tipo {cadena}
* @privado
* /
BigPlayButton.prototype.controlText_ = 'Reproducir video';
Component.registerComponent('BotónGranReproducción', BotónGranReproducción);
exportar BigPlayButton predeterminado;