我在Delphi中有一个程序,它以25赫兹(每秒25次)从外部应用程序中获取帧,然后通过创建1-2个额外帧将其转换为60赫兹(每秒60帧) 。我需要通过连续构建一个帧缓冲区并从一个单独的线程输出这里的帧来输出这些额外的帧。问题是1000/60是16.66667,这意味着我不能在"间隔"中发送帧。在16或17毫秒,我需要它更精确。我如何在Delphi / Windows中执行此操作?
答案 0 :(得分:2)
您可能需要使用以下两种方法:
QueryPerformanceCounter
Win32函数获得,也可以用Delphi TStopwatch
类型包装。这两者都具有比GUI计时器更高的分辨率,并且应该满足您的需求。在此处阅读概述:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms644900.aspx
答案 1 :(得分:1)
通过Win32 API multimedia timer或timeSetEvent()
功能使用CreateTimerQueueTimer()
。