0

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

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

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

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

4

1 回答 1

1

多线程与 schedule_once 结合使用就可以了

Clock.schedule_once(game.startThread)
于 2021-12-17T20:30:00.887 回答