feat(player): pin version, ping upstream in parallel

This commit is contained in:
2022-03-17 15:30:56 +08:00
parent d6bbd33e0c
commit a591b82bf0
2 changed files with 9 additions and 13 deletions
+5 -5
View File
@@ -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 = {
+4 -8
View File
@@ -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