要获取完整代码,请访问 this question
现在代码中出现的问题是:
var times_played =1,
l=pattern_config[actions().whichPattern].WP_slotsCounter;
var p = setInterval(function(){
var x = pattern[actions().whichPattern][times_played];
for(var i=0; i<x.length;i++){
var toBePlayed = x[i];
if(toBePlayed !== undefined){
var url= "All Drums sounds/"+toBePlayed+".wav";
audio.src = url;
audio.play();
//console.log(audio);
}else{};
}
times_played++;
console.log(l);
if(times_played === l+1){clearInterval(p);};
}, pattern_config[actions().whichPattern].delay);
注意:它是名为_play()
问题是:
假设我有一个类似:[['drum_snare_01'],['drum_snare_01'],['drum_snare_01']]
的数组。所以我希望我的函数能够播放名为'drum_snare_01'
3次的音频文件。但它没有发生它只播放一次。从调试开始,我知道在循环结束后,即最后一次播放该文件。
如果我有一个像[[ 'kick_02','drum_snare_01'],[ 'kick_02','drum_snare_01'],[ 'kick_02','drum_snare_01'],[ 'kick_02','drum_snare_01']]
这样的数组,那么它只会播放drum_snare_01
而不是kick_02
,或者通常它会播放最后一个的文件阵列
我不知道这个问题将如何解决,这就是我最终在这里问的原因。