Home > Back-end >  issue in video path in js file
issue in video path in js file

Time:01-27

I am trying to create Video gallery playlist using HTML CSS and JavaScript. I have created html and css and two js files

one to include all videos as shown here:

let allVideos = [
    {
       name: "Button Hover Effect",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_1"
    },
    {
       name: "Button Hover Effect",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_2"
    },
    {
       name: "Confirm Password using Html CSS & js",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_3"
    },
    {
       name: "Creative Card Hover Effect",
       src: "https://youtu.be/ykuD2QOZkhc ",
       id: "vid_4"
    },
    {
       name: "Creative Digital Clock Ui Design",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_5"
    },
    {
       name: "Creative Our Team Section",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_6"
    },
    {
       name: "Filter Text Animation Using Html and CSS",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_7"
    },
    {
       name: "Glassmorphism Calculater New Design",
       src: "https://youtu.be/ykuD2QOZkhc"
    },
    {
       name: "How To  Make Cheatsheet",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_9"
    },
    {
       name: "How to create Login Form",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_10"
    },
    {
       name: "How To Make Animated Menu Icon",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_11"
    },
    {
       name: "How to make Read More Function",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_12"
    },
    {
       name: "Vertical Navigation Bar",
       src: "https://youtu.be/ykuD2QOZkhc",
       id: "vid_13"
    }
 ]

and one for the playlist script here

const mainVideo = document.querySelector('#main-Video');
const musicList = document.querySelector('.music-list');
const playlist = document.getElementById('playlist');
const AllLessons = document.querySelector('.AllLessons');
const videoTitle = document.querySelector('.title');


const ulTag = document.querySelector("ul");
AllLessons.innerHTML = `${allVideos.length} Lessons`


let musicIndex = 1;
window.addEventListener('load',()=>{
   loadMusic(musicIndex);
   playingNow();
})
function playMusic(){
   mainVideo.play();
   playlist.classList.add('active')
}
function loadMusic(indexNumb){
   mainVideo.src = `${allVideos[indexNumb - 1].src}.mp4`;
   videoTitle.innerHTML = `${indexNumb}. ${allVideos[indexNumb - 1].name}`
   
}

for(let i = 0; i < allVideos.length; i  ){
   let liTag = `<li li-index="${i   1}">
      <div >
         <span>${i   1}. ${allVideos[i].name}</span>
      </div>
      <video  src="${allVideos[i].src}.mp4" style="display: none;" title="${allVideos[i].name}"></video>
      <span id="${allVideos[i].id}" ></span>
   </li>`;
   playlist.insertAdjacentHTML('beforeend',liTag); 

   let liVideoDuration = ulTag.querySelector(`#${allVideos[i].id}`)
   let liVideoTag = ulTag.querySelector(`.${allVideos[i].id}`);
   

   liVideoTag.addEventListener("loadeddata", ()=>{
      let videoDuration = liVideoTag.duration;
      let totalMin = Math.floor(videoDuration / 60);
      let totalSec = Math.floor(videoDuration % 60);
      
      totalSec < 10 ? totalSec = "0"  totalSec : totalSec
      liVideoDuration.innerText = `${totalMin}:${totalSec}`;
      
      liVideoDuration.setAttribute("t-duration", `${totalMin}:${totalSec}`);
   })  
}

const allLiTags = playlist.querySelectorAll('li');
function playingNow(){
   for(let j = 0; j<allVideos.length; j  ){
      if(allLiTags[j].classList.contains('playing')){
         allLiTags[j].classList.remove("playing")
      }
      if(allLiTags[j].getAttribute('li-index')==musicIndex){
         allLiTags[j].classList.add('playing')
      }
      
      allLiTags[j].setAttribute("onclick", "clicked(this)")
   }
}

function clicked(element){
   
   let getIndex = element.getAttribute("li-index");
   musicIndex = getIndex;
   loadMusic(musicIndex);
   playMusic();
   playingNow();
}

everything working fine except the scr video in js "all Videos" file. it is not working. can you please help to fix it?

CodePudding user response:

Probably because of this line:

mainVideo.src = `${allVideos[indexNumb - 1].src}.mp4`;

The src property of the "video" object in allVideos returns a string, and you're concatenating that with '.mp4', not getting the source of the video.

  •  Tags:  
  • Related