python - 在 Python 中延迟值流
问题描述
我真的可以使用一些帮助来延迟从 FIFO 管道中提取的数据流。我正在构建一个音乐可视化器,程序从管道中提取频率条高度数据。但是,我的蓝牙扬声器存在一些延迟,因此我需要将条形高度数据延迟约 0.5 秒,以便视觉效果与音频同步。这是一个快速视频,演示了我的可视化器与有线扬声器,因此您可以了解它应该如何与蓝牙扬声器一起使用。
一个简单的 time.delay() 不会起作用,因为这会在每个数据点之间产生 0.5 秒的间隙,这会杀死流。我需要一个源源不断的源源不断的流,它进来后只需 0.5 秒。
我想我可以使用多处理来调用延迟器方法而无需等待它返回,从而创建均匀延迟值的恒定流。但是,当我运行这段代码(粘贴在下面)时,程序变得不堪重负,一切都冻结了。对我的代码或实现结果的更好方法的任何建议将不胜感激。谢谢!
def delayer(dstring):
time.sleep(.5)
print(dstring)
while True:
fd1 = open(thepath,'rb')
for line in fd1:
stringvals = line.decode("utf-8")
t = multiprocessing.Process(target=delayer,args=(stringvals,))
t.start()
解决方案
推荐阅读
- powershell - 如何使用 PowerShell 将字符替换为 $_
- javascript - 揭示模块模式结合 ES6 模块
- java - 来自外键列的 JDBC getString()
- python - 如何将大型数据集从 csv 读取到数据框中?
- sql-server - 根据 SSMS 中的时间戳检索前一行
- ethereum - 错误的以太坊交易格式要花多少钱?(例如错误的帐户随机数)
- python - 如何将 pyodbc.connect() 与授权 = ActiveDirectoryIntegrated 一起使用?
- c# - 在哪里使用 ngen.exe(本机图像生成器)?
- javascript - 在 Firefox v.68 中禁用跨域网络安全
- java - 尝试将控制台输出保存在文本文件中时出现 NullPointerException