K. *_*erg 5 javascript performance html5 web-audio-api
在JavaScript中,是否可以调用一个函数以44.1 kHz播放10种不同的wav声音,并在(1/44100)*(128/60)*16秒内再次调用相同的函数,精度为1/44.1毫秒,最好使用chrome /野生动物园,在那种情况下怎么样?
我正在寻找一个音乐循环机器播放几个同时循环.需要精确度,否则声音会有不必要的可听见问题(定相).
罗伯特,
可以通过performance.now()来高精度地测量时间 - 但是你不能以这种精度获得回调.事实上,鉴于主线程中的布局传递和JavaScript执行,以及主线程中发生的垃圾收集的迫在眉睫的威胁,你甚至无法达到甚至毫秒级的精度; 你通常应该计划在几十毫秒内出现可能的中断以获得稳健性.
对此的回答是使用调度,特别是在Web Audio API中 - 我看到你在一年前看到我在HTML5Rocks上写过的文章(http://www.html5rocks.com/en/tutorials/audio/scheduling) /),但你错过了重要的一块 - 你不应该打电话
audioSource2.noteOn(0, 0.1190, 1.875);
Run Code Online (Sandbox Code Playgroud)
你需要时间偏移来适当地安排它:
audioSource2.noteOn(time, 0.1190, 1.875);
Run Code Online (Sandbox Code Playgroud)
如果你查看我的原始代码,那就是我如何提前安排振荡器.调度程序在一个"慢"回调循环中运行 - 每隔100毫秒左右调用一次 - 但是会提前调度一些节拍.如果您真的需要静音可能已在下一个1/10秒安排的音符,那么您可以将节点保持在中间以断开连接().
归档时间: |
|
查看次数: |
298 次 |
最近记录: |