使用javascript usermedia和web audio api在浏览器上以恒定的延迟播放和录制

时间:2014-01-29 10:39:08

标签: javascript html5-audio audio-recording web-audio getusermedia

我的应用程序使用带有MIDI.js的网络音频API播放音乐。

应用程序记录用户使用麦克风或网络摄像头播放吉他等乐器。我正在使用getUserMedia和一个来自https://github.com/mattdiamond/Recorderjs的工作人员。

我的问题是延迟问题。 我播放的声音大约是在250ms之后录制的。

我想要的不是缩短这段时间,而是要知道这个时间大约是15ms所以我可以同步两者。

反正有吗? 我可以假设延迟会保持不变吗?

我注意到AudioContext参数调用currentTime:http://www.w3.org/TR/webaudio/#AudioContext-section 我可以用它来了解我的noteOn和硬件上的realTime noteOn之间的延迟吗? 如果是,那么如何以及如何获得吉他演奏和吉他录制之间的延迟。

我需要来自JUCE http://www.juce.com/api/classAudioIODevice.html#a693804fbf5a7cceb31ece10a9f03bd11

的AudioIODevice :: getOutputLatencyInSamples之类的东西

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

现在,没有办法做到这一点; currentTime公开是音频硬件时间,没有直接转换。我们有一个未解决的问题,将其添加到规范中。