【问题标题】:Play songs in sequence in JS [duplicate]在JS中按顺序播放歌曲[重复]
【发布时间】:2021-12-13 03:00:18
【问题描述】:

我正在尝试制作一个 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('ended', console.log("placeholder")});

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

【问题讨论】:

  • 这可能会更有帮助;如果您提供您尝试过的代码;这样我们就可以更容易地发现错误!
  • 你的问题太宽泛了,因为你没有真正尝试过任何关于等待赛道的事情。这是一个开始:stackoverflow.com/questions/4619917/…
  • 欢迎。请参阅How to Ask 并转至tour
  • 是的,我尝试过 addEventListener,但由于某种原因,我不能在里面使用 do-While 循环(到目前为止我已经尝试过)。无论如何,我正在用我的代码更新我的问题

标签: javascript web cycle


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多