importar {AudioTrackKind} desde './track-enums';
importar Pista desde './pista';
importar combinación desde '../utils/merge-options';
/**
* Una representación de una sola `AudioTrack`. Si es parte de una {@link AudioTrackList}
* solo se habilitará una `Pista de audio` en la lista a la vez.
*
* @ver [Especificación]{@enlace https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}
* @extiende Pista
* /
clase AudioTrack extiende Pista {
/**
* Crear una instancia de esta clase.
*
* @param {Objeto} [opciones={}]
* Objeto de nombres y valores de opciones
*
* @param {AudioTrack~Tipo} [opciones.tipo='']
* Un tipo de pista de audio válido
*
* @param {cadena} [opciones.id='vjs_track_' + Guid.nuevoGUID()]
* Una identificación única para esta pista de audio.
*
* @param {cadena} [opciones.etiqueta='']
* La etiqueta del menú para esta pista.
*
* @param {cadena} [opciones.idioma='']
* Un código de idioma válido de dos caracteres.
*
* @param {booleano} [opciones.habilitadas]
* Si esta pista es la que se está reproduciendo actualmente. Si esta pista es parte de
* una {@link AudioTrackList}, solo se habilitará una {@link AudioTrack}.
* /
constructor(opciones = {}) {
configuración constante = fusionar (opciones, {
amable: AudioTrackKind[opciones.tipo] || ''
});
super(configuraciones);
dejar habilitado = falso;
/**
* @miembro de la pista de audio
* @member {booleano} habilitado
* Si esta `AudioTrack` está habilitada o no. Al configurar esto se
* disparar {@link AudioTrack#enabledchange} si se cambia el estado de habilitado.
* @instancia
*
* @fires VideoTrack#cambio seleccionado
* /
Object.defineProperty(esto, 'habilitado', {
conseguir() {
retorno habilitado;
},
establecer (nuevo Habilitado) {
// un valor inválido o sin cambios
if (typeof newEnabled !== 'booleano' || newEnabled === habilitado) {
devolver;
}
habilitado = nuevo Habilitado;
/**
* Un evento que se activa cuando se activan cambios en esta pista. Esto permite
* la AudioTrackList que contiene esta pista para actuar en consecuencia.
*
* > Nota: ¡Esto no forma parte de la especificación! Las pistas nativas servirán
* esto internamente sin un evento.
*
* @event AudioTrack#cambio habilitado
* @type {Objetivo del evento~Evento}
* /
this.trigger('cambio habilitado');
}
});
// si el usuario establece esta pista como seleccionada, entonces
// establecer seleccionado a ese valor verdadero de lo contrario
// lo mantenemos falso
si (configuraciones. habilitado) {
this.enabled = configuración.enabled;
}
esto.cargado_ = verdadero;
}
}
exportar pista de audio predeterminada;