簡體   English   中英

Python Kivy:一次播放多次聲音

[英]Python Kivy: Play sound multiple times at once

我正在將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)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM