Kivy第一次调用play()时不会播放声音文件

时间:2017-05-20 18:00:36

标签: python audio kivy

我在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()

第一次按下按钮时,它会播放大约半秒的声音,然后立即停止或者根本不播放任何内容。当我再次按下按钮时,它会按预期播放整个文件。

为什么不按第一个按钮播放文件,如何让它正常工作?

非常感谢任何帮助。

1 个答案:

答案 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)功能在我的机器上完成的时间减少了大约十倍。