您没有考虑代码的开销。每次迭代,此错误加起来并歪曲“时钟”。
我建议改为使用一个循环
time.sleep()),并计算从下一个_参考_ 时刻开始的睡眠时间,这样就不会出现不可避免的错误:
period=0.001t=time.time()while True: t+=period <...> time.sleep(max(0,t-time.time())) #max is needed in Windows due to #sleep's behaviour with negative argument
请注意,由于其他进程必须不时地抢占您的 *** 作系统,因此OS调度将不允许您达到超过特定水平的精度。在这种情况下,您需要为多媒体应用程序使用某些特定于OS的功能,或者制定一种不需要这种准确性级别的解决方案(例如,使用专用应用程序对信号进行采样并使用其保存的输出)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)