如何使用touchstart和touchend重播用户输入

时间:2014-03-28 00:26:32

标签: javascript arrays ontouchevent

在我的应用中,用户可以按开始录制'记录此按钮

<div class="drum" id="bass" ontouchstart="play('bass');" ontouchend="touchEnd(event);">Bass</div>

然后将该信息保存到数组中

[{"time":918,"elemId":"bass"},{"time":1326,"elemId":"highhat"}] 

然后如何重播此信息以触发ontouchstart和ontouchend事件?基本上模仿用户输入。

1 个答案:

答案 0 :(得分:0)

你想要像...这样的东西。

var NOTES=[{.....}],
    mCurrentNote=0,
    mStartTimer=0,
    mTimerId,
    mNextNote=null,
    SPEED=100; // speed in ms

// gets the next note

 function get_next_note() {
        return NOTES[mCurrentNote++] || null;
 }

 function timer() {
     // this gets called every SPEED ms
     if (mNextNote==null) mNextNote=get_next_note();
     if (mNextNode!=null) {
          var playhead=new Date.valueOf()-mStartTime;

          if (playhead < mNextNote.start) return;

          window.setTimeout(function() {play (mNextNote.type);},1);

     } else {
          window.clearInterval (mTimerId);
          // song finish
     }

 }

function playsong() {
    mCurrentNote=0;
    mStartTime=new Date.valueOf();
    mTimerId=window.setInterval (timer, SPEED);
}

但是,如果你计划做一些半严重的事情,我建议你看一下http://www.html5rocks.com/en/tutorials/webaudio/intro/#toc-abstract ......