|
|
|
@ -5,31 +5,37 @@ |
|
|
|
|
shakaPolyFilled = false; |
|
|
|
|
var manifestUri = document.location.protocol+'//'+document.location.host+'/live/{{ username }}/index.mpd'; |
|
|
|
|
async function initPlayer() { |
|
|
|
|
console.log('Trying to initialize player.'); |
|
|
|
|
if(!shakaPolyFilled){ |
|
|
|
|
shaka.polyfill.installAll(); |
|
|
|
|
shakaPolyFilled = true; |
|
|
|
|
} |
|
|
|
|
// Create a Player instance. |
|
|
|
|
const video = document.getElementById('video'); |
|
|
|
|
const player = new shaka.Player(video); |
|
|
|
|
// Listen for error events. |
|
|
|
|
player.addEventListener('error', onErrorEvent); |
|
|
|
|
var live = JSON.parse(await makeRequest("GET", "/api/{{ username }}/config")).live; |
|
|
|
|
if(live){ |
|
|
|
|
// Create a Player instance. |
|
|
|
|
const video = document.getElementById('video'); |
|
|
|
|
const player = new shaka.Player(video); |
|
|
|
|
// Listen for error events. |
|
|
|
|
player.addEventListener('error', onErrorEvent); |
|
|
|
|
|
|
|
|
|
video.addEventListener('play', () => { |
|
|
|
|
document.getElementById('playbtn').style.visibility = 'hidden'; |
|
|
|
|
}); |
|
|
|
|
video.addEventListener('pause', () => { |
|
|
|
|
document.getElementById('playbtn').style.visibility = 'visible'; |
|
|
|
|
}); |
|
|
|
|
// Try to load a manifest. |
|
|
|
|
// This is an asynchronous process. |
|
|
|
|
try { |
|
|
|
|
await player.load(manifestUri); |
|
|
|
|
// This runs if the asynchronous load is successful. |
|
|
|
|
console.log('The video has now been loaded!'); |
|
|
|
|
} catch (e) { |
|
|
|
|
// onError is executed if the asynchronous load fails. |
|
|
|
|
onError(e); |
|
|
|
|
video.addEventListener('play', () => { |
|
|
|
|
document.getElementById('playbtn').style.visibility = 'hidden'; |
|
|
|
|
}); |
|
|
|
|
video.addEventListener('pause', () => { |
|
|
|
|
document.getElementById('playbtn').style.visibility = 'visible'; |
|
|
|
|
}); |
|
|
|
|
// Try to load a manifest. |
|
|
|
|
// This is an asynchronous process. |
|
|
|
|
try { |
|
|
|
|
await player.load(manifestUri); |
|
|
|
|
// This runs if the asynchronous load is successful. |
|
|
|
|
console.log('The video has now been loaded!'); |
|
|
|
|
} catch (e) { |
|
|
|
|
// onError is executed if the asynchronous load fails. |
|
|
|
|
onError(e); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
setTimeout(initPlayer, 5000); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|