tav-media
Version:
Cross platform media editing framework
41 lines (40 loc) • 1.4 kB
JavaScript
import { MovieAsset } from "..";
/* eslint-disable no-param-reassign */
export function setMediaSource(media, src) {
if (src.indexOf('.m3u8') > 0 || src.indexOf('.hls') > 0) {
if (typeof (Hls) !== 'undefined' && Hls.isSupported()) {
const options = MovieAsset.MovieOptions[src];
const hlsOptions = {
chachaParam: options === null || options === void 0 ? void 0 : options.hlsChachaParam,
};
const hls = new Hls(hlsOptions);
hls.loadSource(src);
hls.attachMedia(media);
}
else if (media.canPlayType('application/vnd.apple.mpegurl')) {
media.src = src;
}
else {
console.log('If you want to support m3u8, please add hls.js to your page');
}
}
else {
media.src = src;
}
}
export function waitForEvent(element, eventName, timeout = 1000) {
return new Promise((resolve) => {
let oneTimeCallback;
let resolved = false;
// eslint-disable-next-line prefer-const
oneTimeCallback = () => {
element.removeEventListener(eventName, oneTimeCallback);
if (!resolved) {
resolved = true;
resolve();
}
};
setTimeout(oneTimeCallback, timeout);
element.addEventListener(eventName, oneTimeCallback);
});
}