我正在为带有 C++ 的系统编写模拟器,使用 Qt 进行 UI、事件处理等。显然,我需要有一个准确的时间参考。现在,我使用具有适当间隔的 QTimer(NTSC 为 16.66667 毫秒,PAL 为 20 毫秒),但正如预期的那样,其准确性非常糟糕。有时计时器以 50 FPS 的速度触发,有时以 120 FPS 的速度触发。
我意识到大多数操作系统都有一些功能可以提供精确到微(或纳)秒级别的时间戳。(即QueryPerformanceCounter
在 Windows 上。)
除了使用系统时钟之外,我还考虑与音频时钟同步,因为我已经有一个音频输出流,但我认为 Qt 没有为此提供功能。
从 C++/Qt 同步到某个准确时钟以在特定时间间隔调用函数的最简单(和/或最佳)方法是什么,在正常情况下几乎没有抖动?