You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
var playerRestartTimer; |
|
|
|
|
|
function handleStatus(status) { |
|
clearTimeout(playerRestartTimer); |
|
if (!app.isOnline && status.online) { |
|
// The stream was offline, but now it's online. Force start of playback after an arbitrary delay to make sure the stream has actual data ready to go. |
|
playerRestartTimer = setTimeout(restartPlayer, 3000); |
|
} |
|
|
|
app.streamStatus = status.online ? MESSAGE_ONLINE : MESSAGE_OFFLINE; |
|
|
|
app.viewerCount = status.viewerCount; |
|
app.sessionMaxViewerCount = status.sessionMaxViewerCount; |
|
app.overallMaxViewerCount = status.overallMaxViewerCount; |
|
app.isOnline = status.online; |
|
setVideoPoster(app.isOnline); |
|
|
|
} |
|
|
|
function handleOffline() { |
|
const player = videojs(VIDEO_ID); |
|
player.poster(POSTER_DEFAULT); |
|
app.streamStatus = MESSAGE_OFFLINE; |
|
app.viewerCount = 0; |
|
} |
|
|
|
function getStatus() { |
|
const options = { |
|
// mode: 'no-cors', |
|
} |
|
fetch(URL_STATUS, options) |
|
.then(response => { |
|
if (!response.ok) { |
|
throw new Error(`Network response was not ok ${response.ok}`); |
|
} |
|
return response.json(); |
|
}) |
|
.then(json => { |
|
handleStatus(json); |
|
}) |
|
.catch(error => { |
|
handleOffline(); |
|
}); |
|
}
|
|
|