javascript - 具有随机播放列表的无限循环

标签 javascript html

我的文件夹中有很多 MP3 文件。

当我进入一个页面时,我想要播放该播放列表中的歌曲。这首歌结束后,我想播放一首新的(不是同一首)等等。

<script type="text/javascript">
var song = ["../audio/1.mp3" , "../audio/2.mp3", "../audio/3.mp3", "../audio/4.mp3", "../audio/5.mp3" ];
var soundFile = song[Math.floor(Math.random()*song.length)];
document.write("<embed id='sound' src='" + soundFile + "' loop='true' type='audio/mpeg' controller='false' height='0' width='0'>");
</script>

怎么了,因为它总是播放同一首歌。

最佳答案

使用已定义的嵌入元素并设置src 属性。

<embed id='sound' loop='true' type='audio/mpeg' controller='false' height='0' width='0'>

<script type="text/javascript">
  var songs = ["../audio/1.mp3" , "../audio/2.mp3", "../audio/3.mp3", "../audio/4.mp3", "../audio/5.mp3" ];
  var remainingSongs = songs;
  var el = document.getElementById("sound");

  var pickSong = function(){
    // No songs left?
    if(!remainingSongs.length) {
      remainingSongs = songs;
    }

    // Pick song
    var index = Math.floor(Math.random() * (remainingSongs.length - 1));

    var soundFile = remainingSongs[index];

    // Remove song from array
    remainingSongs.splice(index, 1);

    el.setAttribute("src", soundFile);
  }

  pickSong();
  el.addEventListener("ended", pickSong, false);
</script>

关于javascript - 具有随机播放列表的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34008333/

相关文章:

javascript - 将两个排序图标添加到数据表列?

java - 在先前的 JavaScript 错误之后,正文中的脚本标签不会被评估

HTML:在select中,是否要求每个选项的value属性是唯一的?

html - 为什么这个 html 表格没有正确对齐?

html - Bootstrap 中的 HR 标签问题

JavaScript:通过名称查找变量的值,eval 在这里可以接受吗?

javascript - JQuery/Javascript 子菜单悬停问题

html - 如何从 html 页面中删除名为 dp_swf_engine 的奇怪 div?

html - 如何将 HTML 电子邮件中的 GIF 与不支持的客户端的不同图像交换

javascript - 如何将文本放在与您按下的选项卡链接的选项卡标题下?