Stop Play Music
Использование ObjectProperty и sound.unload () для остановки воспроизведения музыки.
main.py
class MainApp(App):
sound = ObjectProperty(None, allownone=True)
def build(self):
return ScreenManagement()
def on_state(self, state, filename):
print("ONSTATE!!!")
print("\tstate=", state)
if self.sound is None:
self.sound = SoundLoader.load(filename)
# stop the sound if it's currently playing
if self.sound.status != 'stop':
self.sound.stop()
if state == "down":
self.sound.volume = .5
self.sound.play()
else: # if state == "normal":
if self.sound:
self.sound.stop()
self.sound.unload()
self.sound = None
Пропустить состояние кнопки переключения
Не работает, поскольку вы передаете объект, то есть экземпляр кнопки переключения.
Заменить
on_state: app.on_state(self, text_input.text)
с
on_state: app.on_state(self.state, text_input.text)
Примечание
A [Toggle Button][1]
имеет только два состояния: нормальное и вниз .Следовательно, вам не нужно два if
оператора.Повысьте производительность своего приложения Kivy с помощью:
Замена
if state == "down":
print("DOWN")
sound.volume = .5
sound.play()
if state == "normal":
print("normal")
sound.stop()
на:
print(state)
if state == "down":
sound.volume = .5
sound.play()
else: # if state == "normal":
sound.stop()