我正在和Kivy一起创建一个移动应用程序,并尝试添加蜂鸣声来指示锻炼进度。我已经制作了一个小的(39kb) .mp3文件,其中包含1个蜂鸣音。我已经将这些文件添加到与我的主文件相同的文件夹中,并在Kivy SoundLoader中使用以下代码。下面是最小的可重现代码:
from kivymd.app import MDApp
from kivy.core.audio import SoundLoader
class MainApp(MDApp):
def on_start(self):
print("Started")
self.one_beep = SoundLoader.load('countdown-1 second.mp3')
print("Finished!")
if __name__ == "__main__":
MainApp().run()问题是,当这段代码运行时,这会使我的应用程序在5+分钟内没有响应(打印“Starting”,没有错误消息)。在此之后,应用程序完成加载,再次变得有响应,并播放嘟嘟声。我试着在启动应用程序的时候加载声音,后来当我需要嘟嘟声的时候,但在这两个点上我的应用程序都“崩溃”了。我还尝试为声音创建一个非类变量,并尝试了.wav格式的相同声音。该文件可以在Windows Media Player上播放。我已经在谷歌上搜索了这个网站的答案,但这个问题在其他任何地方都没有表现出来。有没有人知道如何加快加载速度,因为这会使我的应用程序不可用。我现在也尝试了以下建议的线程,但应用程序以相同的方式崩溃(在执行其余部分之前):
def start(self):
t = threading.Thread(target=self.load_sound())
t.deamon = True
t.start()
self.calculate()
self.create_workout_list()
Clock.schedule_interval(self.update,1)
def load_sound(self):
print("Started")
self.one_beep = SoundLoader.load('countdown-1 second.mp3')
self.three_beep = SoundLoader.load('countdown-3 seconds.mp3')
print("Finished!")我已经在这里上传了声音:https://sndup.net/37vm
发布于 2020-05-12 01:31:48
我找到解决方案了!我卸载了kivy-deps.angle和kivy-deps.glew,但不知什么原因,它们做到了这一点。
https://stackoverflow.com/questions/61718134
复制相似问题