Python Kivy:一次播放多个声音

Python Kivy: Play sound multiple times at once

我正在使用 Python Kivy 进行 Android 游戏。我想在活动中播放声音

sound = SoundLoader.load("sound.wav")
def onEvent():
    sound.play()

,它有效。但现在的问题是:事件当然可以,在我的情况下,会在上一个事件的声音播放完毕之前再次发生。由于声音是基于 play/pause 的想法,所以我在一次播放同一对象的多个声音时遇到了问题。首先可以这样解决:

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)。