在我的应用中,用户可以按开始录制'记录此按钮
<div class="drum" id="bass" ontouchstart="play('bass');" ontouchend="touchEnd(event);">Bass</div>
然后将该信息保存到数组中
[{"time":918,"elemId":"bass"},{"time":1326,"elemId":"highhat"}]
然后如何重播此信息以触发ontouchstart和ontouchend事件?基本上模仿用户输入。
答案 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 ......