如何使用javascript中的数组播放随机歌曲?

如何使用javascript中的数组播放随机歌曲?,javascript,html,arrays,audio,random,Javascript,Html,Arrays,Audio,Random,页面加载,rand变量将歌曲随机化。我希望“再次播放”按钮暂停歌曲并再次调用rand varibale,以便它再次随机播放歌曲。因此,当我按下播放按钮时,它将播放不同的歌曲。“再次播放”按钮暂停歌曲,但rand变量不会再次随机化。有办法解决这个问题吗 HTML: 看起来您没有正确声明变量audioPlaying。您也不需要围绕兰德的声明播放音频[]。请尝试以下方法: var audioPlaying = [mytrackJS, gdJS]; var rand = Math.floor(Math.

页面加载,rand变量将歌曲随机化。我希望“再次播放”按钮暂停歌曲并再次调用rand varibale,以便它再次随机播放歌曲。因此,当我按下播放按钮时,它将播放不同的歌曲。“再次播放”按钮暂停歌曲,但rand变量不会再次随机化。有办法解决这个问题吗

HTML:


看起来您没有正确声明变量audioPlaying。您也不需要围绕兰德的声明播放音频[]。请尝试以下方法:

var audioPlaying = [mytrackJS, gdJS];
var rand = Math.floor(Math.random() * audioPlaying.length);

由于您初始化了rand变量一次,它的值将始终保持不变

要查看预期结果,请将其移动到播放或暂停功能

function playOrPause() {
  var rand = audioPlaying[Math.floor(Math.random() * audioPlaying.length)];
  if (!rand.paused && !rand.ended){
    rand.pause();
    playButtonJS.style.backgroundImage = 'url(playbutton.svg)';
  } else{
    rand.play();
    playButtonJS.style.backgroundImage = 'url(pausebutton.png)';
  }
}

我不确定这是否是您想要的,但我不想在两个不同的
audio
元素之间进行选择,我只想更改单个元素的
src
属性。通过这种方式,您可以拥有一个文件名数组,并使用
array[Math.random()*array.length]

从中随机选择,谢谢。我更改了它,但它仍然不工作,只是添加了一个快速更新。关于“rand”变量。现在让我知道它是如何工作的好的,谢谢。现在是随机的歌曲。游戏和暂停有些问题不起作用,但我想我应该能够解决。谢谢如果兰德只是一个数字,
rand.pause()?根据您的代码,rand变量似乎是一个可以执行play/pause的song实例,而这个答案表明它是一个随机数。“notworking”是一个非常无用的语句。你需要非常明确地定义什么是失败的,以及如何失败。我试图按下播放按钮,从数组列表中随机播放一首歌曲。我也有一个按钮,当按下它时,调用一个功能,再次随机歌曲。但是,没有调用随机函数。我在其中添加了警告消息,消息不会弹出。是否缺少可以解释为什么不调用随机函数的内容首先,
playagainJS.addEventListener('clcik',random,false)中有一个输入错误
,可能应该是
单击
,而不是
clcik
。还有,为什么要从HTML元素列表中选择一个随机元素呢?谢谢,我修正了输入错误。我试图让它随机挑选一首歌,然后播放它。然后,单击“再次播放”按钮时,它将暂停歌曲并随机选择另一首歌曲。您可以解释如何更改
src
属性
document.getElementById('mytrack')。src=array[Math.random()*array.length]
var audioPlaying = [mytrackJS, gdJS];
var rand = Math.floor(Math.random() * audioPlaying.length);
function playOrPause() {
  var rand = audioPlaying[Math.floor(Math.random() * audioPlaying.length)];
  if (!rand.paused && !rand.ended){
    rand.pause();
    playButtonJS.style.backgroundImage = 'url(playbutton.svg)';
  } else{
    rand.play();
    playButtonJS.style.backgroundImage = 'url(pausebutton.png)';
  }
}