首页 > 解决方案 > 在JS中按顺序播放歌曲

问题描述

我正在尝试制作一个 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);

console.log(num);} music.play(num)} music[num].addEventListener('end', console.log("placeholder")});

会发生什么,正如我之前所说的那样,循环不会等待声音完成,它会一遍又一遍地返回,直到页面崩溃。有什么办法让他等着再播放?

标签: javascriptwebcycle

解决方案


您将需要为我们提供更多背景信息才能给您一个非常好的答案。

我的猜测是,你在 for 循环中调用的任何函数都是异步发生的。基本上,您的 for 循环可能会连续 4 次按下开始按钮,而无需等待结束发生。

如果您查看您在 for 循环中调用的 mp3 播放器对象/函数的文档,您可能能够识别一个检查歌曲何时结束的函数,然后在调用下一次迭代之前等待它for 循环


推荐阅读