/**
* @archivo duración-display.js
* /
importar TimeDisplay desde './time-display';
importar componente desde '../../component.js';
/**
* Muestra la duración
*
* Componente @extiende
* /
class DurationDisplay extiende TimeDisplay {
/**
* 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);
const actualizarContenido = (e) => este.updateContent(e);
// no queremos/necesitamos acelerar los cambios de duración,
// ya que siempre deberían mostrar la duración modificada como
// Ha cambiado
this.on(player, 'cambio de duración', updateContent);
// Escuche loadstart porque la duración del reproductor se restablece cuando se carga un nuevo elemento multimedia,
// pero el cambio de duración en el agente de usuario no se activará.
// @ver [Spec]{@link https://www.w3.org/TR/2011/WD-html5-20110113/video.html#media-element-load-algorithm}
this.on(player, 'loadstart', updateContent);
// También escuche la actualización de tiempo (en el padre) y los metadatos cargados porque los elimina
// los oyentes podrían haber roto aplicaciones/bibliotecas dependientes. Estos
// probablemente se puede eliminar para 7.0.
this.on(player, 'loadedmetadata', updateContent);
}
/**
* Construye el DOM predeterminado `className`.
*
* @return {cadena}
* El DOM `className` para este objeto.
* /
construirClaseCSS() {
return 'vjs-duración';
}
/**
* Actualización de la visualización del tiempo de duración.
*
* @param {Objetivo de evento~Evento} [evento]
* El evento `durationchange`, `timeupdate` o `loadedmetadata` que causó
* esta función a llamar.
*
* @escucha Player#durationchange
* @escucha Player#timeupdate
* @escucha Player#loadedmetadata
* /
actualizar contenido (evento) {
const duracion = this.player_.duration();
this.updateTextNode_(duración);
}
}
/**
* El texto que se agrega a `DurationDisplay` para usuarios de lectores de pantalla.
*
* @tipo {cadena}
* @privado
* /
DurationDisplay.prototype.labelText_ = 'Duración';
/**
* El texto que debería mostrarse sobre los controles `DurationDisplay`s. Añadido a para la localización.
*
* @tipo {cadena}
* @privado
*
* @obsoleto en v7; controlText_ no se usa en componentes de visualización no activos
* /
DurationDisplay.prototype.controlText_ = 'Duración';
Component.registerComponent('DuraciónVisualización', DuraciónVisualización);
exportar visualización de duración predeterminada;