我在Windows上运行一个简单的Kivy应用程序。按下时,按钮从Kivy文档(link)执行以下方法:
def play_audio(self):
sound = SoundLoader.load('output.wav')
if sound:
print("Sound found at %s" % sound.source)
print("Sound is %.3f seconds" % sound.length)
sound.play()
第一次按下按钮时,它会播放大约半秒的声音,然后立即停止或者根本不播放任何内容。当我再次按下按钮时,它会按预期播放整个文件。
为什么不按第一个按钮播放文件,如何让它正常工作?
非常感谢任何帮助。
答案 0 :(得分:0)
我认为this线程会很有用。尝试在按下按钮之前加载声音,如下所示:
如果from kivy.core.audio import SoundLoader
from kivy.base import runTouchApp
from kivy.uix.button import Button
import time
sound = SoundLoader.load('output.wav')
sound.seek(0)
class MyLabel(Button):
def on_release(self):
start_time = time.time()
self.play_sound()
print("--- %s seconds ---" % (time.time() - start_time))
def play_sound(self):
if sound:
print("Sound found at %s" % sound.source)
print("Sound is %.3f seconds" % sound.length)
sound.play()
runTouchApp(MyLabel(text="Press me for a sound"))
play_sound()
,sound.seek(0)
功能在我的机器上完成的时间减少了大约十倍。