我正在将Python Kivy用于Android游戏。我想在事件上播放声音
sound = SoundLoader.load("sound.wav")
def onEvent():
sound.play()
,并且有效。但是现在的问题是:当然可以发生一个事件,在我看来,从最后一个事件开始播放声音之前,事件将再次发生。由于声音是基于播放/暂停的想法,因此在一次播放同一对象的多个声音时遇到了问题。首先可以这样解决:
onEvent():
SoundLoader.load("sound.wav").play()
由于这将始终创建一个新对象,因此能够在另一个事件播放声音的同时播放它。但是使用此方法的问题非常明显,因为每次事件发生时都必须加载声音,因此会导致播放之前的延迟。
有更有用的方法吗?
{如果您不明白我在说什么,或者只是看不到问题,请随时提问}
最佳答案
您可以通过加载声音的多个实例来解决此问题。
例如
sounds = [SoundLoader.load("sound.wav") for _ in range(10)]
index = 0
然后
def play():
sounds[index].play()
index = (index + 1) % len(sounds)
您加载的声音越多,您可以同时播放更多实例(在本示例中为10)。
关于android - Python Kivy:一次播放多次声音,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32976349/