如何将Howler.JS实例连接到单个启动/停止按钮?

时间:2015-10-04 23:30:24

标签: javascript jquery audio howler.js

我已经设法使用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')
      }
      });
      });

0 个答案:

没有答案