精确调度Web音频

时间:2017-12-08 05:19:55

标签: javascript web-audio-api

我使用MIDI.js

开发了音乐应用

下面是我使用setTimeout播放符号的简化代码/逻辑。

function playMelody()
{
var notes = [49,50,51,52,53,54,55,76,80,45,68,56,87] //more than 1000
var time = [1,1.5,1,2,3,0.5,0.75,0.66,0.78,1.25,1.35,0.75,0.75] //more than 1000, time in seconds for each note value.
var ctxt=MIDI.getContext().currentTime;
var delay = time[0],l=notes.length,j=0;
function play()
{       
    while(delay+ctxt < MIDI.getContext().currentTime+4)
    {
        if (j < l) 
         {            
                MIDI.noteOn(0,notes[j],75,ctxt+delay);  
                delay = delay + time[j];    
                j++;                                
         }

    }
 setTimeout(play,2000);
}
 playMelody();
}

最近我在下面的文章中介绍了使用Precision调度Web音频。 https://www.html5rocks.com/en/tutorials/audio/scheduling/

根据文章,这种调度音符事件的方法对于较低配置的设备也很有用。 我想在我的应用程序中实现这种调度事件的方法,请帮助我用文章中描述的逻辑替换我的逻辑

我已经以这种方式实施,但我不确定它是否正确。

npm packages

0 个答案:

没有答案