我必须制作一种事件的播放列表,其中每个事件都有特定的播放时间,下一个必须在时间到后播放,依此类推。
当前,我正在使用setTimeout
函数。现在,我需要循环获取我的事件和时间。
我的代码:
for(let i = 0; i < playlist.length ; i++){
setTimeout(function(){
$('#ventana').attr({src: playlist[i].url_play});
}, playlist[i].time_play*i);
}
但是时机不对。我该如何纠正?
答案 0 :(得分:0)
如果您将延迟设置为playlist[i].time_play*i
的话,它的确不起作用:请考虑一下……它没有考虑到 past 播放列表的延迟,仅考虑了当前播放列表的延迟- -乘以其索引(??)。
相反,您需要累积不同的延迟,例如在delay
变量中:
for (let i = 0, delay = 0; i < playlist.length ; delay += playlist[i].time_play, i++) {
setTimeout(function() {
$('#ventana').attr({src: playlist[i].url_play});
}, delay);
}