Kivy:声音开始播放,但在Android上是“不可阻挡的”,但在Windows上却可以

2024-07-21 09:56:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在kivy里有一系列的切换按钮,每个按钮都加载了不同的声音文件。在

当我在Windows中尝试我的代码时,一切都如预期的那样工作,但是在Android上,通过Kivy启动器,声音不会停止。在

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

以下是它要做的/应该做的:

  • 使用先前指定的soundfile(也指定了:size_hintfont_size和{}(充当单选按钮)创建一个AudioButton实例
  • on_press当按钮的状态改变时,{}触发回调killsound
  • 当按钮是state=='down'时,声音会播放,按钮的文本会附加一个标题
  • 如果按钮是state=='normal',则停止当前播放的声音,如果按下相关按钮,如果按下另一个按钮,则会出现回调:

回叫(killsound):

  • 状态改变时直接停止声音
  • 删除先前添加的标题并调整按钮大小

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

你能帮我吗?在


Tags: to代码textself声音标题windowsdef
1条回答
网友
1楼 · 发布于 2024-07-21 09:56:36

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

相关问题 更多 >