export function getThumbnailURL( thumbnailServerURL: string, id: string, fileName: string, offset: number|string, resizeparams: { width?: number, height?: number, } = {}, ) { // Example: https://thumb-gdq-a.edge.streaminginter.net/agdq2020vods/000.%20Pre%2dpreshow.mp4/thumb-90000-w240.jpg // thumb-[].jpg const resizeparamsStr = Object.entries(resizeparams) .map(([key, value]) => { switch (key) { case 'width': return `w${value}`; case 'height': return `h${value}`; default: throw new Error(`unsupported resizeparam: ${key}`); } }) .filter((v) => !!v) .join('-'); return `${thumbnailServerURL}/${[ id, fileName, `thumb-${offset}${resizeparamsStr.length > 0 ? `-${resizeparamsStr}` : ''}.jpg`, ] .map(encodeURIComponent) .join('/')}`; } export function getHLSMasterURL( hlsServerURL: string, id: string, fileName: string, ) { return `${hlsServerURL}/${[ id, fileName, 'master.m3u8', ] .map(encodeURIComponent) .join('/')}`; } export function getDASHManifestURL( dashServerURL:string, id:string, fileName:string, ) { return `${dashServerURL}/${[ id, fileName, 'manifest.mpd', ] .map(encodeURIComponent) .join('/')}`; } export default null; export * as api from './api'; export * as localization from './localization'; export * as session from './session'; export * as status from './status';