Javascript 单击按钮播放音频(无循环)

Javascript 单击按钮播放音频(无循环),javascript,html,function,audio,onclick,Javascript,Html,Function,Audio,Onclick,我有64个按钮,都有一个单独的音频文件。其中一半我想在单击时循环播放音频,其他人只播放一次文件。目前,我的代码强制所有人循环,所以我需要帮助找到一个解决方案,使一些人循环,而另一些人不循环 我已经编辑的例子,显示只有3个按钮,我想按钮3外汇,只有发挥一次,每次点击 JS: HTML: 我知道目前所有3个按钮都链接到设置为循环的声音功能,但是我不知道如何在没有循环的情况下创建另一个功能,因为循环是在createAudio中声明的,这是来自其他地方的代码,我不确定它是如何工作的。您可以在播放声音时,

我有64个按钮,都有一个单独的音频文件。其中一半我想在单击时循环播放音频,其他人只播放一次文件。目前,我的代码强制所有人循环,所以我需要帮助找到一个解决方案,使一些人循环,而另一些人不循环

我已经编辑的例子,显示只有3个按钮,我想按钮3外汇,只有发挥一次,每次点击

JS:

HTML:


我知道目前所有3个按钮都链接到设置为循环的声音功能,但是我不知道如何在没有循环的情况下创建另一个功能,因为循环是在createAudio中声明的,这是来自其他地方的代码,我不确定它是如何工作的。

您可以在播放声音时,而不是在创建声音时,在相同的功能中设置声音是否为循环。这也允许你有时循环某个声音,有时只播放一次,而不是一直播放同一种声音

JS: HTML:
嗨,又是你问了类似的问题。你能告诉我你是如何调用creaetAudio函数的吗?我认为这可以在函数内完成。这非常有效,谢谢你的帮助!但是,我没有创建true/false,而是创建了一个新函数,并且必须将其更改为audio[id].loop=true;
var audio = [];
var isPlaying = [];

function sound(id){
  if(isPlaying[id]){
    audio[id].pause();
    isPlaying[id] = false;
    audio[id].currentTime = 0;
  }
  else{
    audio[id].play();
    isPlaying[id] = true;
    audio[id].currentTime = 0;
  }
}

function createAudio(src,i){
  audio[i] = new Audio();
  audio[i].src = src;
  audio[i].loop = true;
  isPlaying[i] = false;
}

var mySources = ['audio/drums/1.wav','audio/bass/2.wav','audio/fx/3.wav'];
<img class="button" src="images/button.png" onclick="sound(1);"/>
<img class="button" src="images/button.png" onclick="sound(2);"/>
<img class="button" src="images/button.png" onclick="sound(3);"/>
function sound(id, loop){
  audio[id].loop = loop;
  /* ... */
}

function createAudio(src,i){
  audio[i] = new Audio();
  audio[i].src = src;
  isPlaying[i] = false;
}
<img class="button" src="images/button.png" onclick="sound(1, true);"/>
<img class="button" src="images/button.png" onclick="sound(2, false);"/>
<img class="button" src="images/button.png" onclick="sound(3, true);"/>