我将如何在每个项目的数组上实现一组指令?



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

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.
}

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

好吧,据我了解,您基本上想一次又一次地调用播放列表函数. 因此,您可以使用具有时间间隔的 setInterval(( 函数,之后您希望再次调用该函数,如下所示: (您必须使用类似按钮的东西来调用该函数(

<!DOCTYPE html>
<html>
<body>
<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<p>After clicking away the alert box, an new alert box will appear in 3 seconds. This goes on forever...</p>
<button onclick="myFunc()">Try it</button>
<script>
let playlist = [
{
name: "value"
},
{
name: "value"
}
]
function myFunc() {
setInterval(function(){ console.log(playlist[0]); console.log(playlist[1]);}, 3000);  // Log the first song
// After the first song finishes playing log this song
// Once finished with this, repeat again.
}

</script>
</body>
</html>

希望这有帮助。

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

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);
});
}

最新更新