importar * como URL desde '../utils/url.js';
/ **
* Mimetipos
*
* @ver https://www.iana.org/assignments/media-types/media-types.xhtml
* @typedef Mimetypes~Tipo
* @enum
* /
export const MimetypesKind = {
obra: 'video/ogg',
ogv: 'vídeo/ogg',
mp4: 'vídeo/mp4',
mov: 'video/mp4',
m4v: 'vídeo/mp4',
mkv: 'video/x-matroska',
m4a: 'audio/mp4',
mp3: 'audio/mpeg',
aac: 'audio/aac',
caf: 'audio/x-caf',
flac: 'audio/flac',
oga: 'audio/ogg',
wav: 'audio/wav',
m3u8: 'aplicación/x-mpegURL',
mpd: 'aplicación/guion+xml',
jpg: 'imagen/jpeg',
jpeg: 'imagen/jpeg',
gif: 'imagen/gif',
png: 'imagen/png',
svg: 'imagen/svg+xml',
webp: 'imagen/webp'
};
/ **
* Obtener el tipo MIME de una url src dada si es posible
*
* @param {cadena} src
* La url al src
*
* @return {cadena}
* devuelve el tipo MIME si era conocido o una cadena vacía de lo contrario
* /
export const getMimetype = function(src = '') {
const ext = Url.getFileExtension(src);
const mimetype = MimetypesKind[ext.toLowerCase()];
devolver tipo MIME || '';
};
/ **
* Encuentre el tipo MIME de una cadena de origen determinada si es posible. utiliza el reproductor
* caché de origen.
*
* @param {Jugador} jugador
* El objeto jugador
*
* @param {cadena} src
* La cadena de origen
*
* @return {cadena}
* El tipo que se encontró
* /
export const findMimetype = (jugador, src) => {
si (!origen) {
devolver '';
}
// 1. comprobar el tipo en la memoria caché `fuente`
if (jugador.caché_.fuente.src === src && player.cache_.fuente.tipo) {
volver player.cache_.source.type;
}
// 2. ver si tenemos esta fuente en nuestro caché `currentSources`
const matchingSources = player.cache_.sources.filter((s) => s.src === src);
if (fuentes coincidentes.longitud) {
devuelve las fuentes coincidentes[0].type;
}
// 3. busque la url src en los elementos fuente y use el tipo allí
const fuentes = jugador.$$('fuente');
para (sea i = 0; i < fuentes.longitud; i++) {
const s = fuentes[i];
si (s.tipo && s.src && s.src === src) {
volver a tipo;
}
}
// 4. finalmente recurra a nuestra lista de tipos mime basados en la extensión de URL src
devuelve getMimetype(src);
};