首页 > 解决方案 > 我将如何为每个项目实现一组关于数组的指令?

问题描述

我不知道该怎么说,但我有一系列歌曲,我需要播放它们,但在数组完成后,它需要循环。我需要它看起来像这样:

let playlist = [
    {
        name: "value"
    },
    {
        name: "value"
    }
]

function myFunc() {
    console.log(playlist[0]); // Log the first song
    console.log(playlist[1]); // After the first song finishes playing log this song
    // Once finished with this, repeat again.
}

它基本上是在播放一个播放列表,并将其设置为重复。谢谢!

标签: javascriptarrays

解决方案


让我们试试这个,让我知道:

let playlist = [
    {
        name: "value",
        src: "song.wave",
    },
    {
        name: "value",
        src: "sg.wave",
    }
];

function getDuration(src){
    var music = new Audio(src);
    music.addEventListener('loadeddata', () => {
  let duration = music.duration;
  return duration;
  });
}

function playThePlaylist(playlist) {
    let srcSongs = playlist.map(song => song.src);
    let counterSongsPlayed = 0;
      var durationSong = getDuration(song);
      song.addEventListener('loadeddata', () => {
       setInterval(function(){
        if(durationSong == song.currentTime || counterSongsPlayed == 0){
            var song = new Audio(srcSongs[counterSongsPlayed]);
                song.play();
            counterSongsPlayed++;
         }

         if(counterSongsPlayed > srcSongs.length)
           counterSongsPlayed = 0;
       }, 1000);
      });
}

推荐阅读