Javascript 如何重叠变量?

Javascript 如何重叠变量?,javascript,audio,Javascript,Audio,我正在创建一个启动板,在其中单击按钮时音频文件开始/停止。我可以这样做,但当我尝试添加多个音频文件时,它们拒绝正确地相互重叠。播放第一个音频文件时,第二个音频文件将不播放。有没有办法让它工作起来?下面是两个按钮的示例,其中有两个单独的音频文件链接到它们。我想重叠这些音频文件,以便在项目完成时(64个音频文件/按钮),用户可以将多个音频文件拼凑在一起,创建自己独特的曲目 var one=新音频(); one.src=“files/audio/one.wav”; 1.loop=true; var

我正在创建一个启动板,在其中单击按钮时音频文件开始/停止。我可以这样做,但当我尝试添加多个音频文件时,它们拒绝正确地相互重叠。播放第一个音频文件时,第二个音频文件将不播放。有没有办法让它工作起来?下面是两个按钮的示例,其中有两个单独的音频文件链接到它们。我想重叠这些音频文件,以便在项目完成时(64个音频文件/按钮),用户可以将多个音频文件拼凑在一起,创建自己独特的曲目

var one=新音频();
one.src=“files/audio/one.wav”;
1.loop=true;
var two=新音频();
two.src=“files/audio/two.wav”;
2.loop=true;
var显示=假;
函数管理器1(){
如果(显示){
暂停();
isplay=false;
1.currentTime=0;
}否则{
一、玩耍;
isplay=true;
1.currentTime=0;
}
}
功能管理器2(){
如果(显示){
二、停顿();
isplay=false;
2.currentTime=0;
}否则{
二、玩耍;
isplay=true;
2.currentTime=0;
}
}

播放/暂停跟踪器需要使用两个不同的变量

这里,
isplay
跟踪您的第一个音频,
issecondplay
跟踪您的第二个音频

var one = new Audio(); one.src = "files/audio/one.wav"; one.loop = true;

var two = new Audio(); two.src = "files/audio/two.wav"; two.loop = true;

var isPlaying = false;
var isSecondPlaying = false;

function manage1(){
  if(isPlaying){
    one.pause();
    isPlaying = false;
        one.currentTime = 0;
  }
  else{
    one.play();
    isPlaying = true;
        one.currentTime = 0;
  }
}

function manage2(){
  if(isSecondPlaying ){
    two.pause();
    isSecondPlaying = false;
        two.currentTime = 0;
  }
  else{
    two.play();
    isSecondPlaying = true;
        two.currentTime = 0;
  }
}
但是

如果要对64个音频文件执行此操作,可能需要重新考虑您的方法:

var audio=[];
变量显示=[];
功能管理(id){
如果(显示[id]){
音频[id]。暂停();
isPlaying[id]=假;
音频[id]。currentTime=0;
}否则{
音频[id]。播放();
isPlaying[id]=true;
音频[id]。currentTime=0;
}
}
函数createAudio(src,i){
音频[i]=新音频();
音频[i].src=src;
音频[i]。循环=真;
isPlaying[i]=假;
}
var mySources=['path/to/1.wav','path/to/2.wav','path/to/3.wav','path/to/4.wav','path/to/5.wav'];

对于(var i=1;我认为这很有效!你帮了大忙,伙计。我不太明白使用64个音频文件的替代方法,我不理解
[id]
[i]
我是JS新手。如果你能用一个使用2或3个音频文件的例子来更新你的答案,我相信我能从那里得到答案。如果没有,那么无论如何,谢谢你,你帮了我很大的忙。我用完整的解决方案编辑了我的答案。让我解释一下:你所要做的就是把所有的源代码放在
m中ySources
array。函数
createAudio()
将被称为
for
循环所需的时间。如果您还不知道,您应该阅读Javascript中的数组。它们是在同一个变量中存储多个信息的一种方法。要访问不同的信息,您可以给变量一个搜索索引,例如:
myArray(2)
。它将从
myArray
返回第三个元素。好的,这帮助我了解了它,它工作得很好!但出于某种原因,最后一个元素(5)不起作用?Chrome控制台给了我一个错误:Uncaught(承诺中)DomeException:元素没有支持的源代码。manage@index.html:28 onclick@index.html:74有什么想法吗?你能把你的代码放在JSFIDLE中让我测试一下吗?哦,是的,我忘了添加
-1
,我的错!我编辑了答案。