UNPKG

@xnstream/player-sdk

Version:

XStream Player SDK - A powerful video player SDK for streaming content

30 lines 1.08 kB
import Hls from 'hls.js'; import { generateSignature, base64Encode } from '../utils/crypto'; export class FragmentLoader extends Hls.DefaultConfig.loader { constructor(config, sig) { super(config); this.sig = sig; } load(context, config, callbacks) { const parts = context.url.split('/'); const segmentName = parts[parts.length - 1]; if (this.sig) { const reqSig = base64Encode(generateSignature(segmentName, this.sig)) .replace(/=/g, '') .replace(/\+/g, '-') .replace(/\//g, '_'); const separator = context.url.includes('?') ? '&' : '?'; context.url = `${context.url}${separator}sig=${reqSig}`; } super.load(context, config, callbacks); } } // Create a factory function to satisfy HLS.js loader type export const createFragmentLoader = (_config, sig) => { return class extends FragmentLoader { constructor(config) { super(config, sig); } }; }; //# sourceMappingURL=FragmentLoader.js.map