All checks were successful
release-tag / release-image (push) Successful in 1m56s
34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
(function(){
|
|
const name = window.__STREAM_NAME__; // oder: document.body.dataset.name
|
|
const v = document.getElementById('v');
|
|
const liveEl = document.getElementById('live');
|
|
const viewersEl = document.getElementById('viewers');
|
|
const srcEl = document.getElementById('hlssrc');
|
|
|
|
function updateLive(live){
|
|
liveEl.className = 'pill ' + (live ? 'live' : 'off');
|
|
liveEl.textContent = live ? 'LIVE' : 'Offline';
|
|
}
|
|
|
|
async function refresh(){
|
|
const r = await fetch('/api/streams');
|
|
const d = await r.json();
|
|
const it = d.items.find(x=>x.name===name);
|
|
const live = !!(it && it.live);
|
|
updateLive(live);
|
|
viewersEl.textContent = 'Zuschauer: ' + (it ? it.viewers : 0);
|
|
if(live){
|
|
const src = '/hls/'+encodeURIComponent(name);
|
|
srcEl.textContent = src;
|
|
if (window.Hls && Hls.isSupported()){
|
|
if(!window._hls){ window._hls = new Hls(); window._hls.attachMedia(v); }
|
|
window._hls.loadSource(src);
|
|
} else if (v.canPlayType('application/vnd.apple.mpegurl')) {
|
|
v.src = src;
|
|
}
|
|
}
|
|
}
|
|
|
|
refresh(); setInterval(refresh, 2500);
|
|
})();
|