0

我在 kivy 中获得了一系列 ToggleButtons,每个都加载了不同的声音文件。

当我在 Windows 中尝试我的代码时,一切都按预期工作,但在 Android 上通过 Kivy Launcher 时,声音不会停止。

class AudioButton(ToggleButton):
    sound = ObjectProperty(None)

    def killsound(self, state, dt):
        self.sound.stop()
        if 'Click to stop' in self.text:
            self.text = self.text.strip('\nClick to stop')
            self.height = 60
        else:
            pass

    def on_press(self):
        self.bind(state=self.killsound)
        if self.state == 'normal':
            self.sound.stop()
        else:
            self.sound.play()
            self.text = self.text+'\nClick to stop'
            self.height=240

这是它的作用/应该做的:

  • 使用先前指定的声音文件创建一个AudioButton实例(也指定:size_hintfont_sizegroup(作为单选按钮)
  • on_presskillsound当 Button 的状态改变时触发回调
  • 当按钮是state=='down'声音播放时,按钮的文本会附加一个标题
  • 如果按钮是state=='normal'它会停止当前播放的声音,如果相关按钮被按下,如果另一个按钮被按下,则有回调:

回调(killsound):

  • 状态改变时直接停止声音
  • 删除之前添加的 Caption 并调整 Button 的大小

在 Windows 上,此代码一切正常。然而,在 Android 上,当killsoundget 被调用时,它会删除标题并调整按钮的大小,但不会停止声音 - 旧声音(应该停止)仍在播放,新声音开始,所以我得到了两个声音同时播放,相同的有两个以上的声音。

你能帮助我吗?

4

1 回答 1

2

这已在 Kivy 1.4.1 中修复。您应该通过邮件列表与我们交谈,或者报告 github 问题而不是在这里发布 :)

于 2012-10-03T10:19:20.127 回答