我想做一个MP3随机播放器。我已经完成了所有的数组和循环,但让我感到困扰的是,所有的歌曲都在同一时间播放,基本上是这样的:
var num; var x = 0; let music = ['https://samplelib.com/lib/previeww/mp3'sample-3s.mp3', 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3']; funcion button(){ for (let i = 0; i < 4; i++){ num = Math.floor(Math.random()*3);
} music.play(num)} music[num].console.log(num);addEventListener("结束",console.log("placeholder"});
发生了什么,正如我之前说过的,循环不会等待声音结束,它一遍又一遍地返回,直到页面崩溃。有什么办法能让他等一等再放吗?
你需要提供更多的背景,让我们给你一个真正好的答案。
我猜你在for循环中调用的任何函数都是异步发生的。基本上,你的for循环可能是连续按下开始按钮4次,而没有等待结束发生。
如果你看一下你在for循环中调用的mp3播放器对象/函数的文档你可能会找到一个函数,它会检查歌曲何时结束然后在调用for循环的下一次迭代之前等待它