feat(player): pin version, ping upstream in parallel
This commit is contained in:
@@ -8,15 +8,15 @@
|
||||
<link rel="stylesheet" href="./player.css" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/video.js@latest/dist/video-js.min.css"
|
||||
href="https://cdn.jsdelivr.net/npm/video.js@7.18.1/dist/video-js.min.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/videojs-hls-quality-selector@latest/dist/videojs-hls-quality-selector.css"
|
||||
href="https://cdn.jsdelivr.net/npm/videojs-hls-quality-selector@1.1.4/dist/videojs-hls-quality-selector.css"
|
||||
/>
|
||||
<script src="https://cdn.jsdelivr.net/npm/video.js@latest/dist/video.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/videojs-contrib-quality-levels@latest/dist/videojs-contrib-quality-levels.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/videojs-hls-quality-selector@latest/dist/videojs-hls-quality-selector.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/video.js@7.18.1/dist/video.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/videojs-contrib-quality-levels@2.1.0/dist/videojs-contrib-quality-levels.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/videojs-hls-quality-selector@1.1.4/dist/videojs-hls-quality-selector.min.js"></script>
|
||||
<script src="./player.js"></script>
|
||||
<script id="config">
|
||||
window.restream_config = {
|
||||
|
||||
@@ -86,7 +86,6 @@
|
||||
if (window.restream_config.activeURL === playlistURL) return;
|
||||
|
||||
console.log('Reloading video from', playlistURL);
|
||||
// videosrc.src = playlistURL;
|
||||
if (typeof window.player === 'undefined') {
|
||||
window.player = videojs('video', {
|
||||
liveui: true,
|
||||
@@ -94,6 +93,7 @@
|
||||
window.player.hlsQualitySelector({
|
||||
displayCurrentQuality: true,
|
||||
});
|
||||
window.player.volume(0.5);
|
||||
}
|
||||
window.player.src({
|
||||
src: playlistURL,
|
||||
@@ -166,19 +166,15 @@
|
||||
const init = async () => {
|
||||
const mirrorSelect = document.getElementById('mirror-select');
|
||||
const mirrorPopup = document.getElementById('mirror-popup');
|
||||
const mirrorLoadProgress = document.getElementById('mirror-load-progress');
|
||||
const { upstreams } = window.restream_config;
|
||||
|
||||
// Set up event listeners
|
||||
mirrorSelect.addEventListener('change', () => reloadVideo());
|
||||
|
||||
// Measure latency
|
||||
let n = 0;
|
||||
for (const upstream of upstreams) {
|
||||
n += 1;
|
||||
await measureUpstreamLatency(upstream);
|
||||
mirrorLoadProgress.innerText = '(' + n + '/' + upstreams.length + ')';
|
||||
}
|
||||
await Promise.all(
|
||||
upstreams.map((upstream) => measureUpstreamLatency(upstream))
|
||||
);
|
||||
|
||||
// Choose the fastest upstream server
|
||||
const upstream = upstreams
|
||||
|
||||
Reference in New Issue
Block a user