我已经设法使用Howler.js将几个按钮连接到音频源。但是,我无法使停止功能起作用,因为Howl每次都会创建一个新的Howl实例。有没有人有任何提示将sound.stop()直接连接到sound.start()上创建的同一个实例?我希望能够以这种方式制作多个按钮,而无需复制每个声音的所有代码!这是我的代码:
var arrayVariable = ["Kick","Snare","HiHats"];
var newArr = [];
var arrayLength = arrayVariable.length;
var temp;
$(document).ready(function(){
// create buttons //
for (i = 0; i < arrayLength; i++) {
newArr[i] = './audio/checklist/' + arrayVariable[i] + '.ogg';
temp = document.createElement('button');
temp.innerHTML = arrayVariable[i];
var assign = $('#buttonDiv')[0].appendChild(temp);
}
$('button').on('click',function() {
var index = $( "button" ).index( this );
//$( "div" ).text( "That was div index #" + index );
var i = $('#buttonDiv').index(this);
// configure howler //
var sound = new Howl({
src: [newArr[index]],
autoplay: false,
loop: true,
volume: 0.5
});
// start stop buttons //
if ($(this).attr('data-click-state') == 1) {
$(this).attr('data-click-state', 0)
sound.stop();
$(this).css('background-color', 'red')
} else {
$(this).attr('data-click-state', 1)
sound.play();
$(this).css('background-color', 'green')
}
});
});