ShowerLoop-cc/docker/showerloop/public/js/video-init-fixed.min.js

2 lines
1.1 KiB
JavaScript

document.addEventListener("DOMContentLoaded",function(){const e=document.querySelectorAll("video.video-js");e&&e.length>0&&(console.log("Found "+e.length+" video elements to initialize"),e.forEach(function(e){if(e.classList.contains("vjs-has-started"))console.log("Video "+e.id+" already initialized");else try{const o=e.querySelectorAll("source");let r=null;o.forEach(function(e){const o=e.getAttribute("src");o&&o.includes(".m3u8")&&(r=o)});const t=videojs(e.id,{fluid:!0,responsive:!0,html5:{vhs:{overrideNative:!videojs.browser.IS_SAFARI,enableLowInitialPlaylist:!0,limitRenditionsByPlayerDimensions:!0,useBandwidthFromLocalStorage:!0},nativeAudioTracks:videojs.browser.IS_SAFARI,nativeVideoTracks:videojs.browser.IS_SAFARI},playbackRates:[.75,1,1.25,1.5,2]});r&&(console.log("HLS source detected for "+e.id+": "+r),t.src({src:r,type:"application/x-mpegURL"})),t.on("error",function(){console.error("Video player error:",t.error()),o.forEach(function(e){if(!e.src.includes(".m3u8"))return t.src(e.src),void t.play()})})}catch(o){console.error("Error initializing video "+e.id+":",o)}}))}));