const vids = [
{
url: "http://media.w3.org/2010/05/bunny/trailer.mp4",
thumbnail: "images/gitea.png",
name: "Big Buck Bunny",
subtitle: "Short Desc",
},
{
url: "http://media.w3.org/2010/05/sintel/trailer.mp4",
thumbnail: "images/gitea.png",
name: "Sintel",
subtitle: "Test",
},
{
url: "https://vdo.mwit.ac.th/vod/_definst_/mp4:02_description/2561/05/30-05-61/VOD/30-05-61-AV4.mp4/playlist.m3u8",
thumbnail: "images/gitea.png",
name: "HLS",
subtitle: "Should use hls.js",
},
{
url: "http://vjs.zencdn.net/v/oceans.mp4",
thumbnail: "images/gitea.png",
name: "DisneyOcean1",
subtitle: "555",
},
{
url: "http://media.w3.org/2010/05/video/movie_300.mp4",
thumbnail: "images/gitea.png",
name: "5min",
subtitle: "Just countdown",
}
];
const videoListContainer = document.querySelector('#videoListContainer');
const titleText = document.querySelector('#titleText');
const vidPlayer = document.querySelector('#vidPlayer');
const createVidList = () => {
var vidElements = "";
vids.forEach((item, index) => {
vidElements += `
${item.name}
${item.subtitle}
`;
});
videoListContainer.innerHTML = vidElements;
}
var hls = null;
var currentVideo = 0;
const changeVid = index => {
var oldSelectedVideo = document.querySelector(`#playlistEntry${currentVideo}`);
oldSelectedVideo.classList.remove("bg-dark");
oldSelectedVideo.classList.remove("text-light");
console.log("Switching video to index", index);
titleText.innerHTML = vids[index].name;
currentVideo = index;
var newSelectedVideo = document.querySelector(`#playlistEntry${currentVideo}`)
newSelectedVideo.classList.add("bg-dark");
newSelectedVideo.classList.add("text-light");
if(!/Android|webOS|iPhone|iPad|iPod|Edge|iOS/i.test(navigator.userAgent) &&
Hls.isSupported() &&
vids[index].url.endsWith(".m3u8")) {
console.log("Using HLS.js");
if(!hls==null) {
hls.detachMedia(vidPlayer);
}
hls = new Hls();
hls.loadSource(vids[index].url);
hls.attachMedia(vidPlayer);
hls.on(Hls.Events.MANIFEST_PARSED,()=>{video.play();});
}
else {
vidPlayer.src = vids[index].url;
vidPlayer.play();
}
}
createVidList();
changeVid(currentVideo);