Mat*_*uor 1 python events loops kivy
因为我在这里找不到任何东西,所以我试着提出我的问题.
我正试图在kivy中构建一个简单的节拍器.我基本上采用了随安装提供的音频示例,并希望添加一个节拍器功能.
class AudioButton(ToggleButton):
filename = StringProperty(None)
sound = ObjectProperty(None)
def on_filename(self, instance, value):
# the first time that the filename is set, we are loading the sample
if self.sound is None:
self.sound = SoundLoader.load(value)
def on_press(self):
# stop the sound if it's currently playing
if self.sound.status != 'stop':
self.sound.stop()
self.sound.play()
Run Code Online (Sandbox Code Playgroud)
如您所见,我将课程从更改Button为ToggleButton.
我试图用一个while循环self.sound.play(),但结果是无穷大,所以基本上我正在寻找一种方法来摆脱循环,如果我再次按下按钮.
我没有真正理解文档中的事件循环管理,我认为应该是答案,但我之前从未使用过事件循环.如果有人可以为这种情况提供一些示例代码,那就太好了.
你想要开始寻找的地方是讨论时钟事件的Kivy文档.在像这样的事件驱动系统中,任何类型的while循环都会使系统屈服.相反,当你想要定期发生某些事情时,你要求系统设置一个计时器并告诉它你每次计时器过去时想要调用的函数.
在你的情况下,你可能只是播放那个单节拍器,并在下次定时器结束时完成.
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |