我正在开发一个测距仪应用程序,我在其中发出声音,然后等待其记录来计算距离。当然,这需要非常灵敏的时间。
在Windows窗体应用程序中使用NAudio库我已经能够使一切工作正常但是延迟大约70ms。问题的真正原因是这种延迟并不一致,所以我无法对其进行校准。我希望消除延迟或使其保持一致,以便我可以将其考虑在内。也许在单独的线程中运行录制和播放?
答案 0 :(得分:1)
有很多方法可以使用waveOutGetPosition从waveIn / waveOut API获取更准确的时序信息,例如NAudio用IWavePosition
接口包装。
但是对于你的用途,如果你可以使用ASIO而生活会更容易,因为你同时对记录和回放缓冲区进行一次回调,因此没有漂移的危险。