それぞれが異なるサウンドファイルをロードした一連のトグルボタンをkivyで取得しました。
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_hint
、font_size
およびgroup
(ラジオ ボタンとして機能するため)on_press
killsound
ボタンの状態が変化したときにコールバックを発生させます- ボタンが
state=='down'
サウンドの場合、ボタンのテキストにキャプションが追加されます - ボタンが
state=='normal'
現在再生中のサウンドを停止する場合、関連するボタンが押される場合、別のボタンが押される場合、コールバックがあります。
コールバック(キルサウンド):
- 状態が変化したときに音を直接停止する
- 以前に追加されたキャプションを削除し、ボタンのサイズを変更します
Windows では、このコードですべて正常に動作します。ただし、Androidでは、killsound
getが呼び出されると、キャプションが削除され、ボタンのサイズが変更されますが、サウンドは停止しません-古いサウンド(停止する必要があります)はまだ再生されており、新しいサウンドが開始されるため、両方のサウンドが得られました2 つ以上の音でも同じです。
手伝って頂けますか?