Kivy 减慢 midi 播放速度

Kivy slowing down midi playback

我正在开发一个开源 midi 合成器,每当我播放一首同时出现多个音符的歌曲时,音乐就会变慢。

我知道我有一个非常不稳定的实现(代码中的第 140 行及以下),因为只要更新函数内有循环,kivy 就会挂起。我通过将 midi 文件拆分成一个列表来编写一个解决方法,该列表在每次更新时都会耗尽。我怀疑问题要么是 kivy 很慢,要么是 time.sleep() 弄乱了多个击键,因为它是同步的。

我可以在 Kivy 中使用单独的线程 运行 “在后台”吗?这可以解决问题,但我不确定。

代码可以在这里找到: https://github.com/DeWolfRobin/Pythesia/blob/main/gui.py

多线程结合 schedule_once 成功了

Clock.schedule_once(game.startThread)