擅长:python、mysql、java
<h2>PyGame的解释和解决方法:</h2>
<p>问题原因如下:github.com/kivy/kivy/issues/2728
基本上声音加载程序.load()函数应返回最适合播放传递给它的声音文件的类。它最终没有做到这一点,据我所知,问题不在于Kivy而是GStreamer。这会导致应用程序的帧速率出现显著的临时下降—无论您在何处调用.play()方法。在</p>
<p>两种可能的解决方案是github线程中的offerend;
1) 或者使用SoundSDL2确保直接返回合适的类
2) 改用PyGame</p>
<p>我实现了后者,效果很好。在</p>
<pre><code># Initialize files and PyGame mixer:
import pygame
pygame.init()
pygame.mixer.pre_init(44100, 16, 2, 4096) # Frequency, size, channels and buffersize
shield_on = pygame.mixer.Sound("shield_on.wav")
class game(Widget):
...
def update_loop(self):
...
if "game_file_says_shield_is_on":
shield_on.play()
</code></pre>
<p>希望这对其他人有所帮助!在</p>
<p>我想说,上面的答案也很有用,因为它使我能够确定真正的问题。我会投一票,但我在这里还没有名声。在</p>