2
我正在创建一个Launchpad,其中一个音频文件在单击按钮时开始/停止。我有这个工作,但是当我尝试添加多个音频文件时,他们拒绝正确地重叠对方。当第一个音频文件播放时,第二个音频文件不会播放。有没有办法让这个工作?以下是2个按钮的示例,其中有2个独立的音频文件链接到它们。我希望重叠这些音频文件,以便在项目完成时(64个音频文件/按钮),用户可以将多个音频文件拼接在一起以创建自己独特的音轨。你如何重叠变量(音频)?
JS:
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;
function manage1(){
if(isPlaying){
one.pause();
isPlaying = false;
one.currentTime = 0;
}
else{
one.play();
isPlaying = true;
one.currentTime = 0;
}
}
function manage2(){
if(isPlaying){
two.pause();
isPlaying = false;
two.currentTime = 0;
}
else{
two.play();
isPlaying = true;
two.currentTime = 0;
}
}
HTML:
<img class="item" src="files/button.png" onclick="manage1();"/>
<img class="item" src="files/button.png" onclick="manage2();"/>
这是有效的!你一直很有帮助。我无法理解使用64个音频文件的替代方法,但我并不了解'[id]'和'[i]',因为我是JS的新手。如果你可以用一个使用2或3个音频文件的例子来更新你的答案,我相信我可以从那里解决它。如果没有,那么谢谢你,你一直很好的帮助。 –
我编辑我的答案与完整的解决方案。让我解释一下:你所要做的就是把所有的源代码放入'mySources'数组中。函数'createAudio()'将被称为exaclty所需要的时间,这要归功于'for'循环。如果你不知道它,你应该阅读Javascript中的数组。它们是在同一变量内存储多个信息的一种方式。要访问不同的信息,可以给变量一个索引来搜索,例如:'myArray(2)'。它会从'myArray'返回第三个元素。 – Zenoo
好的,帮助我让我的头靠近它,它效果很棒!由于某种原因,最后一个(5)不起作用? Chrome控制台为我提供了以下错误:_Uncaught(在承诺中)DOMException:该元素没有支持的来源。 manage @ index.html:28 onclick @ index.html:74_任何想法? –